私はジェネリック型のlateinit
非NULL可能性を有するパラメータ化クラスを作成しようとしています。私はT?
を宣言していないのでジェネリック型のプロパティがnullに設定されるのはなぜですか?</p> <pre><code>class Test<T> { private lateinit var t : T private lateinit var s : String } </code></pre> <p>後者は許可されているが、前者ではありません:
Error:(7, 11) ''lateinit'' modifier is not allowed on nullable properties
が、私はこれが事実である理由として混乱しています:コンパイラは、次のエラーを返します。
ダーン:
はが上位タイプを追加修正します。私は単純な検索でそれを見つけられませんでした。質問のタイトルに「lateinit」を含めることをお勧めします。なぜならそれが最初の問題の原因となるからです。 –