返回Any时如何保持智能转换的对象类型

Scr*_*Fox 0 android kotlin kotlin-extension

抱歉,如果这是一个愚蠢的问题,Kotlin对我来说还是新手,而且我对语法"类型"不熟悉,因此发现找到解决方案很困难.

fun Any?.test(): Any?
{
    return this
}

"test string".test() // implicit string is now type of "Any"
"test string".test().substring() // what i'm trying to achieve 
Run Code Online (Sandbox Code Playgroud)

我基本上希望类扩展方法返回它自己的实例,所以我仍然可以按照示例的底线操作它

请原谅这个例子的粗鲁,简化了下来

zsm*_*b13 5

您可以使用通用函数:

fun <T> T.test(): T {
    return this
}
Run Code Online (Sandbox Code Playgroud)