1
我創建了一個通用的JAXB序列化類,看起來像這樣一個泛型參數泛型類時:錯誤實例與
public class JAXBSerializing<T>
implements IXMLSerializing<T>
{
private final Class<T> mType;
public JAXBSerializing(Class<T> oType)
{
mType = oType;
}
}
在我的代碼現在,當我用「正常初始化它「類,它工作正常。
IXMLSerializing<String>strser = new JAXBSerializing<String>(String.class);
但是當我嘗試使用泛型類我得到一個編譯錯誤:
MapEntry<String, String>e = new MapEntry<String, String>("Key", "Value");
IXMLSerializing<MapEntry<String, String>>serializer = new JAXBSerializing<MapEntry<String, String>>(MapEntry.class);
我嘗試各種組合,但他們沒有工作。
IXMLSerializing<MapEntry<String, String>>serializer = new JAXBSerializing<MapEntry<String, String>>(MapEntry<String, String>.class);
Syntax error on token ">", void expected after this token
或
IXMLSerializing<MapEntry<String, String>>serializer = new JAXBSerializing<MapEntry<String, String>>(MapEntry.class);
The constructor JAXBSerializing<MapEntry<String,String>>(Class<MapEntry>) is undefined
的作品的唯一的事情是,當我實例化一個虛擬對象是這樣的:
MapEntry<String, String>e = new MapEntry<String, String>("Key", "Value");
IXMLSerializing<MapEntry<String, String>>serializer = new JAXBSerializing<MapEntry<String, String>>((Class<MapEntry<String, String>>) e.getClass());
雖然這個作品,我不知道如何正確地傳遞類作爲沒有該虛擬對象的參數。即便如此,由於不需要的轉換,我得到了未經檢查的類型警告,儘管對象都是正確的類型。
我使用'public JAXBSerializing(類 oType)'現在,避免另一個警告。 :)我認爲,泛型類型的語法存在問題。 – Devolus
好啊!是的問號會做得更好 – gerrytan
我更新了你的答案。當時甚至不需要SuppressWarning – Devolus