でクラス変数を初期化するための正しい場所は何ですか:はkotlin
private class ViewHolder(view: View) {
val menuImg: ImageView
val txtMenu: TextView
init {
menuImg = view.find(R.id.menuImg)
txtMenu = view.find(R.id.txtMenu)
}
}
Bのinitブロック内のクラス変数を初期化:クラスのブロックに直接変数クラスを初期化
private class ViewHolder(view: View) {
val menuImg: ImageView = view.find(R.id.menuImg)
val txtMenu: TextView = view.find(R.id.txtMenu)
}
2つのコードの間で異なるものをなぜ ?。
これらの間に違いはありません。 'init'ブロックは、プロパティの初期化に複数のステートメントが必要な便利な方法です。あなたのコードにはコンパイルできないキャスト式はありませんでした。 –
2番目のコードスニペットで重複した '= menuImg'を見てください。宣言し、1つの場所に割り当てる。 (編集:うわ、あなたはそれを速く修正した!!) – AjahnCharles
holi-java説明をありがとう。 –