爲什麼obj.getClass()返回類型爲<T>類型,當obj類型爲T時?這也產生了一個警告,我已經沉默了。但我覺得這不應該是必要的。這裏發生了什麼?Java泛型:爲什麼編譯器不能說明這個類<T>對象與這個類的類型參數的對象類有相同的類型?
public class DataSerialization<T> {
private T deserializedObject;
private Class<T> classObject;
private String serializedObject = null;
private static final Gson gson = new Gson();
@SuppressWarnings("unchecked")
public DataSerialization(T obj) {
this.deserializedObject = obj;
this.classObject = (Class<T>) obj.getClass();
}
// ...
}
是什麼讓你認爲'deserializedObject'不能是'T'的子類而不是'T'? –
@LouisWasserman:它不返回'類 extends T>' – newacct
如果你有一個實際的非泛型對象,它將返回一個'Class <?擴展Foo>'。我不認爲它適用於仿製藥。 –