就仿制药而言,我是无趣的。加上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
我不明白这里发生了什么。我想保持对输入“target”的全局引用,因为这个“目标”将在类中的许多方法中使用。
我该怎么办?
答案 0 :(得分:3)
删除parse
方法
public <T> T parse(Class<T> target, String inputString, String rootNode, String requiredNode,
// ^ get rid of this
<T>
位声明了一个新的类型变量,它隐藏(具有相同的名称)类名表达式中声明的类型变量。这里的类型变量T
和在类级别声明的变量是不相关的。