gpt4 book ai didi

java - 使用 GWT 获取父类(super class)中的泛型类型类

转载 作者:行者123 更新时间:2023-11-29 09:01:42 26 4
gpt4 key购买 nike

我有一个 GWT 客户端通用父类(super class) SuperClass<T> .有一些子类显式定义了泛型类型,比如 SubClass extends SuperClass<String>等等。我需要在父类(super class)中获取通用类类型,例如 T.class (当然这行不通,但我希望你能明白)。

所以我最终创建了一个方法 Class<T> getClassType()在 super 类。在子类中,我将其重写为以下内容:

@Override    
protected Class<String> getClassType(){
return String.class;
}

虽然它有效,但我不喜欢这种方法,因为我必须多次显式定义类型。我正在寻找一些解决方法,以便我可以编写更少的代码是子类。

在服务器端我可以使用反射,但在客户端它不可用。

我看到了一些关于使用生成器的建议,但并没有真正看到它在这里有什么帮助。

最佳答案

我会通过构造函数传递它:

public class SuperClass<T> {

private Class<T> type;

public SuperClass (Class<T> type) {
this.type= type;
}

public void Class<T> getClassType() {
return type;
}
}

为此有第三方库: https://github.com/jhalterman/typetools

没有其他方法可以在运行时 中获取它,因为java 泛型 是一个编译时 特性。

关于java - 使用 GWT 获取父类(super class)中的泛型类型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17094277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com