这是我的场景 我有3个类。如何从父类和子类的相同方法返回泛型类型
class Animal {
public getWeight(){ ..... }
public getHeight(){ ..... }
}
class Dog extends Animal {
public getDogType() { ...}
}
class Cat extends Animal {
public getCatType(){....}
}
而且有它返回一个动物类型以一个对象作为参数
public Animal translate(CustomObject o){
... so many calculations here
}
这里翻译方法返回Animal对象不同的方法,但我需要用同样的方法返回犬和Cat类型也没有类型转换。我知道我必须在这里使用泛型,但是如何编辑translate方法来支持泛型,以便我可以将Class类型传递给它的参数,并且如果使用Cat参数调用Cat对象并且使用Animal参数调用Animal对象时会返回Cat对象。如果使用Dog参数调用该对象。例如
: - Cat newCat = translate(object, Cat.class); //should return cat object and not animal obj
代替
猫newCat =(CAT)翻译(对象,Cat.class)
感谢。
为什么不使用类型转换? – jordanpg 2014-10-01 06:58:07