KotlinでArrayList
にnull値を割り当てる方法は?
そのようなカスタムArrayList
にnull値を追加しようとしています
var mList = ArrayList<CustomClass>()
mList.add(null)
Javaで可能ですが、Kotlinでこれをどのように実現できますか?
nullをnull以外の型kotlinの値にすることはできません
RecyclerViewでより多くの機能をロードするにはnull値を挿入する必要があります
次に、このように記述する必要があります。
var mList = ArrayList<CustomClass?>()
mList.add(null)
?
を使用するとnull値を入力できるため、ArrayListのタイプの後に?
を追加する必要があります。
Kotlinの型システムは、null許容型と非null型を区別します。たとえば、単純なString
変数を宣言し、コンパイラにその型を推測させると、null
を保持できなくなります。
_var a = "text" //inferred type is `String`
a = null //doesn’t compile!
_
一方、変数がnull
も指すことができるようにしたい場合は、型に疑問符で明示的に注釈を付けます。
_var a: String? = "text"
a = null //Ok!
_
あなたの例では、ArrayList
はジェネリック型CustomClass
で宣言されており、nullにすることはできません。代わりにnull許容型_CustomClass?
_を使用する必要があります。また、リストのインスタンスを作成するための Kotlinの標準ライブラリ関数 を利用できます(できればread-onlyのもの)。
_var mList = listOf<CustomClass?>(null)
_
それ以外の場合は、mutableListOf()
またはarrayListOf()
も役立ちます。