就泛型而言,我很菜鸟。再加上java的混淆编译错误“无法从java.lang.Class转换为java.lang.Class”没有帮助
这是我的课
public class XMLParser<T> {
private static XMLParser reference=null;
String rootNode;
String requiredNode;
List<String> members;
Class<T> targetClass;
private XMLParser()
{
}
public static XMLParser getInstance()
{
if(reference==null)
reference= new XMLParser();
return reference;
}
public <T> T parse(Class<T> target, String inputString, String rootNode, String requiredNode,
List<String> members) {
this.rootNode=rootNode;
this.requiredNode=requiredNode;
this.members=members;
this.targetClass=target; //compile error
我不明白这是怎么回事。我想保留对输入“目标”的全局引用,因为这个“目标”将在类中的很多方法中使用。
我该怎么办?
最佳答案
删除 parse
中声明的类型变量方法
public <T> T parse(Class<T> target, String inputString, String rootNode, String requiredNode,
// ^ get rid of this
那个<T>
bit 声明一个新类型变量,该变量隐藏(具有相同名称)类名表达式中声明的类型变量。类型变量T
这里和在类级别声明的无关。
关于java - 如何在类中保存 Class<T> 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22140684/