簡體   English   中英

如何在沒有初始化和特定數量元素的情況下在 Kotlin 中創建對象數組?

[英]How can I create an array of objects in Kotlin without initialization and a specific number of elements?

我想在 Kotlin 中創建一個具有特定數量元素的對象數組,問題是我現在沒有聲明中每個對象的初始化當前值,我嘗試過:

var miArreglo = Array<Medico>(20, {null})

在 Java 中,我有這個,這正是我想要的,但我在 Kotlin 中需要它。

Medico[] medicos = new Medico[20];

for(int i = 0 ; i < medicos.length; i++){
    medicos[i] = new Medico();

}

上面 Java 代碼的 Kotlink 等價物是什么?

另外,我嘗試過:

var misDoctores = arrayOfNulls<medic>(20)

for(i in misDoctores ){
    i = medic()
}

但我 Android Studio 向我顯示消息:“Val 無法重新分配”

Kotlin 的等價物可能是這樣的:

val miArreglo = Array(20) { Medico() }

但我強烈建議您在 Kotlin 中使用Lists ,因為它們更加靈活。 在您的情況下, List不需要是可變的,因此我會建議如下:

val miArreglo = List(20) { Medico() }

上面的兩個片段很容易解釋。 第一個參數顯然是 Java 中的ArrayList大小,第二個參數是 lambda 函數,即init { ... }函數。 init { ... }函數可以由某種操作組成,最后一個值將始終是返回類型和返回值,即在這種情況下是一個Medico對象。

我還選擇使用val而不是var因為不應重新分配ListArray 如果您想編輯您的List ,請改用MutableList

val miArreglo = MutableList(20) { Medico() }

然后您可以編輯此列表,例如:

miArreglo.add(Medico())

如果你想要可空對象的列表,我們可以做這樣的事情

val fragment : Array<Fragment?> = Array(4) { null }


暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM