假設我有一個類層次結構如下:Java泛型,如何強制擴展超類具有相同類型的方法的兩個參數?
class Vehicle;
class Car extends Vehicle;
class Plane extends Vehicle;
我有一個函數,其中兩個對象
public <T extends Vehicle> generateDiff(T original, T copy)
比較在編譯時,上述方法保證了兩個對象是Vehicle
,但它無法確定兩個對象的類型是否相同。
generateDiff(new Car(), new Car()); //OK
generateDiff(new Plane(), new Plane()); //OK
generateDiff(new Car(), new Plane()); //WRONG
我可以在編譯時使用泛型來實現這個嗎? P:目前,我已經實現了它,如果兩個對象的Class
不相同,它將拋出異常。但我對此並不滿意。
在此先感謝。
+1推斷的類型! – UmNyobe