簡體   English   中英

我該怎么做:輸入擴展名 Arraylist

[英]How I can do it: typed Extension for Arraylist

我試試看:

fun <T : E> ArrayList<E>.getTypeOrNull(index:Int) : T? {
  val item = this.getOrNull(index)
  return if(item is T) item else null
}

我該怎么做? 我是 kotlin java 的新手

你真的需要擴展嗎? 要調用擴展程序,您必須傳遞T的具體類型,對嗎? 不然他function不知道查哪個類型。

怎么樣簡單:

yourResult = yourList[5] as? ConcreteT

我認為您必須檢查要求,因為 function 看起來很奇怪:

但如果你真的需要它:

inline fun <TE : Any, reified T: TE> ArrayList<TE>.getTypeOrNull(index:Int) : T? =
    getOrNull(index) as? T

現在你可以使用它了:

fun test() {
    val list = ArrayList<CharSequence>()
    val str: String? = list.getTypeOrNull(5)
}

暫無
暫無

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

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