相关疑难解决方法(0)

带有通用参数的Kotlin抽象类和使用类型参数的方法

我正在尝试使用泛型参数创建一个抽象类,它将具有应该调用方法而不必指定类型参数的子类.到目前为止我有这个:

abstract class AbstractClass<T : Any> @Autowired constructor(protected val delegate: MyService) {
    inline fun <T: Any> myMethod(param: Any): T? {
        return delegate.myMethod(param).`as`(T::class.java)
    }
}
Run Code Online (Sandbox Code Playgroud)

并实施:

class TesterWork @Autowired constructor(delegate: MyService) : AbstractClass<Tester>(delegate) {
}
Run Code Online (Sandbox Code Playgroud)

现在在调用时myMethod我必须指定类型参数:

testerWork.myMethod<Tester>("test")
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以自动推断出类型参数?我可以以某种方式重写myMethod吗?请注意,我需要T::class.java在方法内部.

generics abstract-class type-inference kotlin

8
推荐指数
1
解决办法
4499
查看次数

标签 统计

abstract-class ×1

generics ×1

kotlin ×1

type-inference ×1