[解決済み】KotlinのListに "add"、"remove "がない、Mapに "put "がないなど?
2022-04-05 16:37:19
質問
Javaでは、次のようになります。
public class TempClass {
List<Integer> myList = null;
void doSomething() {
myList = new ArrayList<>();
myList.add(10);
myList.remove(10);
}
}
しかし、これを直接Kotlinに書き換えると、以下のようになります。
class TempClass {
var myList: List<Int>? = null
fun doSomething() {
myList = ArrayList<Int>()
myList!!.add(10)
myList!!.remove(10)
}
}
が見つからないというエラーが出ました。
add
と
remove
関数から、List
ArrayListにキャストすることで回避していますが、Javaではキャストは不要なのに、キャストが必要なのはおかしいですね。そして、それは抽象クラスListを持つことの目的を破ることになります。
class TempClass {
var myList: List<Int>? = null
fun doSomething() {
myList = ArrayList<Int>()
(myList!! as ArrayList).add(10)
(myList!! as ArrayList).remove(10)
}
}
Javaでできるような、キャストを必要としないListの使い方はないでしょうか?
どのように解決するのですか?
<ブロッククオート多くの言語と異なり、Kotlinはmutableとimmutableのコレクション(リスト、セット、マップなど)を区別しています。コレクションをいつ編集できるかを正確に制御することは、バグをなくし、良いAPIを設計するために有用です。
https://kotlinlang.org/docs/reference/collections.html
を使用する必要があります。
MutableList
のリストを作成します。
class TempClass {
var myList: MutableList<Int> = mutableListOf<Int>()
fun doSomething() {
// myList = ArrayList<Int>() // initializer is redundant
myList.add(10)
myList.remove(10)
}
}
MutableList<Int> = arrayListOf()
も動作するはずです。
関連
-
[解決済み] vbscriptでコレクションオブジェクトを作成する方法は?
-
[解決済み] MongoDBで複数のコレクションを一度にクエリする
-
[解決済み] List<> and/or Map<> クラス/ライブラリのタイプスクリプトはありますか?[クローズド]
-
[解決済み] JavaでMapをListに変換する方法は?
-
[解決済み】KotlinのListに "add"、"remove "がない、Mapに "put "がないなど?
-
[解決済み】Javaで最後のN個の要素を保持するサイズ制限のある待ち行列
-
[解決済み] コレクション内のカウントと長さ、サイズ
-
[解決済み] エンティティのコレクションにおけるIListとIEnumerableの比較
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] vbscriptでコレクションオブジェクトを作成する方法は?
-
[解決済み] MongoDBで複数のコレクションを一度にクエリする
-
[解決済み] List<> and/or Map<> クラス/ライブラリのタイプスクリプトはありますか?[クローズド]
-
[解決済み】KotlinのListに "add"、"remove "がない、Mapに "put "がないなど?
-
[解決済み】Javaで最後のN個の要素を保持するサイズ制限のある待ち行列
-
[解決済み] コレクション内のカウントと長さ、サイズ
-
[解決済み] エンティティのコレクションにおけるIListとIEnumerableの比較
-
[解決済み] KotlinのArrayList<String>()とmutableListOf<String>()の相違点