AndroidでアクティビティTAGをKotlinで定義する正しいコード例
Androidアプリ開発でよく使うので
Activityにタグ(TAG)を割り振ることがあります。
▼ デバッグ情報のLog出力時とかに使う
Log.d(TAG, "Debug message");
これをKotlinで定義するにはどうするのかって話です。
Javaの場合でのアクティビティTAGの定義方法
Javaの場合だとアクティビティTAGの定義はこんな感じ
▼ Activity内にて
private static final String TAG = MainActivity.class.getName();
▼ それでLog.d()に対してTAGを渡して使う
Log.d(TAG, "Debug message");
こうすると TAG = "MainActivity" という値が代入され、ログ出力時にアクティビティ名で出力を絞りたい時に便利になります。
いちいち "MainActivity" と書きたくないからTAGを使ってるだけ
KotlinでのアクティビティTAGの正しい定義方法
こういうコードでTAGを定義できます。
▼ MainActivityに対してTAGを定義
companion object {
val TAG = MainActivity::class.qualifiedName
}
▼ あとはJava同様にLog出力できる
Log.d(TAG, "Debug message")
実はKotlinクラスは静的なメンバを持つことができない。
すなわちstatic変数を定義すること自体が不可能みたいです。
そこで代替としてcompanionというキーワードが登場します。
▼ 詳しくは次の記事とか見ればいいと思う
こういう風にKotlinでは静的メソッド・静的メンバはcompanionキーワードを使って定義しないとダメな模様です。
ということでKotlinでのアクティビティTAGの定義についてでした。
KotlinとJavaは完全な互換性があるとはいえ、
コード上ではすごく色々違うんだなって思いました。
この記事が気に入ったらサポートをしてみませんか?