Haw*_*ike 1 generics static kotlin
我知道可以用 Java 编写静态泛型方法。
我试图在 Kotlin 中实现我自己的解决方案,但我失败了。
class Wrapper<T>
{
companion object <T> // error: Type parameters are not allowed for objects.
{
private var value: T? = null
// implement some methods
}
}
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在 Kotlin 中实现静态泛型方法吗?
companion object不是方法。事实上,object它是Wrapper类的伴生对象,因此它无法知道父类的泛型类型。同样的事情适用于 Java:
public class Wrapper<T> {
public static T value; //ERROR
}
Run Code Online (Sandbox Code Playgroud)
在此companion object您可以声明将static在 Java 世界中的方法和字段。
class Wrapper<T>
{
companion object
{
fun <T> genericMethod(){
}
}
}
Run Code Online (Sandbox Code Playgroud)
但请记住, type ofWrapper<T>与 type Tin无关fun <T> genericMethod()。