如何在类中保存Class <t>引用?</t>

时间:2014-03-03 07:08:28

标签: java generics

就仿制药而言,我是无趣的。加上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”的全局引用,因为这个“目标”将在类中的许多方法中使用。

我该怎么办?

1 个答案:

答案 0 :(得分:3)

删除parse方法

中声明的类型变量
public <T> T  parse(Class<T> target, String inputString, String rootNode, String requiredNode,
     // ^ get rid of this

<T>位声明了一个新的类型变量,它隐藏(具有相同的名称)类名表达式中声明的类型变量。这里的类型变量T和在类级别声明的变量是不相关的。