這是我的場景 我有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