是否可以访问在调试窗口中看到的$ loader变量?

时间:2018-06-21 12:22:30

标签: java android kotlin classloader

正如您在调试模式下在此屏幕快照中所看到的,我可以看到一个$ 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]”

enter image description here

谢谢。

0 个答案:

没有答案