総型化されたプロパティはなぜnullableなのか?
2023-12-02 04:55:32
質問
パラメータ化されたクラスを作成しようとしています。
lateinit
を持つパラメタライズドクラスを作ろうとしています。
class Test<T> {
private lateinit var t : T
private lateinit var s : String
}
後者は許されますが、前者は許されません。コンパイラは次のようなエラーを返します。
Error:(7, 11) ''lateinit'' modifier is not allowed on nullable properties
を宣言しなかったので
T?
を宣言していないので、なぜこのようなことが起こるのか混乱しています。
どのように解決するのですか?
デフォルトの上限値(何も指定されていない場合)は
Any?
( ソース )
つまり
T
であると仮定すると、Kotlin は
任意の
型、プリミティブ、オブジェクト、あるいは null 可能な参照であるとしています。
これを修正するために、上位の型を追加します。
class Test<T: Any> { ... }
関連
-
[解決済み] by lazy" と "lateinit" を使ったプロパティの初期化
-
[解決済み] Kotlinで、nullableな値を扱う慣用的な方法、参照または変換する方法は何ですか?
-
[解決済み] Kotlin データクラスのオーバーライドゲッター
-
[解決済み] KotlinのIntArrayとArray<Int>の比較
-
[解決済み] kotlin.jvm.KotlinReflectionNotSupportedError.KotlinReflectionNotSupportedError.KotlinReflectionNotSupportedError: ランタイムにKotlin Reflectionの実装が見つかりませんでした。kotlin-reflect.jar があることを確認してください。
-
[解決済み] Kotlinにおけるスレッドとコルーチンの違い
-
[解決済み] Kotlinの "receiver "って何?
-
[解決済み] アダプターまたはViewHolderでのKotlin合成
-
KotlinのSwap関数
-
Kotlinのカスタム属性データバインディング
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] KotlinでNullチェックを行う最良の方法とは?
-
[解決済み] Kotlinのゲッターとセッター
-
[解決済み] Kotlin: withContext() vs Async-await
-
[解決済み] KotlinのIterableとSequenceは全く同じに見える。なぜ2つの型が必要なのでしょうか?
-
[解決済み] KotlinのコルーチンはRxKotlinよりどう優れているか?
-
[解決済み] Kotlinにおけるスレッドとコルーチンの違い
-
[解決済み] Kotlin - ボイド vs. ユニット vs. ナッシング
-
[解決済み] コルーチン:runBlockingとcoroutineScopeの比較
-
[解決済み] Kotlinでオブジェクトをクローンする方法は?
-
Kotlinのcrossinlineとnoinlineの違いは何ですか?