正如您在调试模式下在此屏幕快照中所看到的,我可以看到一个$ loader变量,其内容为“()-> com.belandsoft.orariGTT.Model.RestRequestResponse,kotlin.Boolean>”。有可能在运行时以任何方式访问这些值吗?反射可以以任何方式提供帮助?
示例代码:
val mCollection: kotlin.collections.HashMap<Int, () -> Unit> = HashMap()
fun <T> myAddFunction(loader: () -> T) {
val elementCode = loader?.hashCode()
if (elementCode != null) {
mCollection[elementCode] = loader
}
}
fun myPrintFunction(): String {
val stringBuilder = StringBuilder()
var index = 0
for (i in mCollection.iterator()) {
stringBuilder.append("$index:[${i.value}] ")
index++
}
stringBuilder.toString()
}
可悲的是,它产生了一个像这样的字符串:
“ 053523:[()-> kotlin.Unit],453455:[()-> kotlin.Unit]”
但我想拥有:
“ 053523:[()-> com.belandsoft.orariGTTView.MainFragment $ startPtArrivalSearch $ 2 $ 18839],453455:[[]-> com.belandsoft.orariGTTView.MainFragment $ startPtArrivalSearch $ 2 $ 18845]”
谢谢。