假设我有一个类层次结构如下:
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
我可以在编译时使用泛型实现这一点吗?
Ps:目前,我已经实现了如果Class
两个对象不一样会抛出异常。但我对此并不满意。
提前致谢。