2014-03-03 26 views
0

就仿製藥而言,我並不看好。加上Java的困惑編譯錯誤「無法從java.lang.Class中轉換爲java.lang.Class中的」不利於如何在課堂上持有類<T>參考?

這裏是我

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 

我不明白怎麼回事就在這裏。我想持有對輸入「目標」的全局引用,因爲這個「目標」將用於課堂中的很多方法。

我該怎麼辦?

回答

3

得到您的parse方法擺脫聲明的類型變量的

public <T> T parse(Class<T> target, String inputString, String rootNode, String requiredNode, 
    //^get rid of this 

<T>位聲明瞭一個新的類型變量的陰影(具有相同的名稱)在類名錶達式聲明的類型變量。這裏的類型變量T和在課堂上聲明的類型無關。

+0

謝謝,先生,就是這樣。不能選擇這個作爲正確的答案。它說在十分鐘內。 –