這是我的一個previous question的後續操作。具有嵌套泛型的特定枚舉類型的「集合」
比方說,我有一個動物的抽象父類。同一種動物可以有不同的氣質,可以在不同類型的表演中表演。所以,我的動物定義看起來是這樣的:
public abstract class Animal<T extends Temperament, S extends Show>{...}
我想爲那些知道動物類型,氣質的各種動物,意式表演的動物是執行中的培訓師,並定義了一組技巧教練可以教那個動物。因爲我想設定一個特定的動物中定義的招數,我有一個枚舉界面如下:
public interface TrainingActions<T extends Animal<?,?>>{...}
實現該接口定義了特定的動物一組的訓練動作,無論其氣質任何枚舉並且表明它可以在執行
牢記這些,我對父類培訓師的定義如下:
public abstract class Trainer
<A extends Animal<?,?>,
E extends Enum<E> & TrainingActions<A>,
T extends Temperament,
S extends Show>{
...}
現在,我試圖創建一個具體的訓練器,但得到如下錯誤:
public class DogTrainer
<T extends Temperament,
S extends Show> extends Trainer
<Dog<T,S>, DogTrainer.Trainables, T, S>{//error right here
public enum Trainables implements TrainingActions<Dog<?,?>>{
FETCH, GROWL, SIT, HEEL;
}
...
}
我收到以下錯誤,試圖在我的DogTrainer
定義中使用DogTrainer.Trainables
作爲Trainer
參數:
Bound mismatch: The type DogTrainer.Trainables is not a valid substitute
for the bounded parameter <E extends Enum<E> & TrainingActions<A>> of the type
Trainer<A,E,T,S>
有人可以幫助我瞭解我在做什麼錯?
您能告訴我們錯誤是什麼嗎? – hexafraction
剛剛添加了錯誤消息。 – anishthecoder