接受泛型类型参数的Java genegic类
例如,我有:接受泛型类型参数的Java genegic类,java,generics,Java,Generics,例如,我有: interface Consumer<F extends FoodType> interface Vegetarian extends Consumer<Grass> interface Predator extends Consumer<Meat> 您可以使用: class Feeder<C extends Consumer<? extends FoodType>> class Feeder> 但两者之间有区别
interface Consumer<F extends FoodType>
interface Vegetarian extends Consumer<Grass>
interface Predator extends Consumer<Meat>
您可以使用:
class Feeder<C extends Consumer<? extends FoodType>>
class Feeder>
但两者之间有区别。据我从你的问题(不是很清楚)中了解到,你想要这两个类型中的一个。如果类要使用两个泛型类型,它将需要两个泛型参数,即使它们是依赖的
class Feeder<C extends Consumer<F>, F extends FoodType>{}
class Feeder{}
如果能灵活一点可能会有用
class Feeder<C extends Consumer<? super F>, F extends FoodType>{}
class Feederyes,我同意。我在编辑。。。这个问题不太清楚他在干什么我和@Ben在一起。我认为在调用feed
方法时,您会犯错误。您对信息类型
的意思是什么?这意味着其他传递的类型不包含此类型的信息。
class Feeder<C extends Consumer<?>>
class Feeder<C extends Consumer<F>, F extends FoodType>{}
class Feeder<C extends Consumer<? super F>, F extends FoodType>{}