class Animal{}
class Dog extends Animal{}
class Cat extends Animal{}
public class Mixer<A extends Animal>{
public <C extends Cat> Mixer<? super Dog> useMe(A a, C c){
//return new Mixer<Object>();//KO
return new Mixer<Animal>(); //OK
}
}
返回參數Mixer<? super Dog>
所以如果用下界通配符一般用下界通配符<? super Dog>
爲什麼我有一個編譯器錯誤定義的,當我返回一個Mixer<Object>
並沒有編譯器錯誤與Mixer<Animal>
?
你能重新說出你的問題?它不清楚你在問什麼。 –
@RohitJain:他說要回來'混音器'是允許的,但不是'混音器
我已經有這本書的答案,但它並沒有明確表示我的懷疑。 它說因爲方法的返回類型是混音器 super Dog>,這意味着一個Mixer對象的泛型類型是Dog或Dog的超類型。但是在這種情況下,Object是一個超類型,並且存在編譯器錯誤。 – Joe