Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
接受泛型类型参数的Java genegic类_Java_Generics - Fatal编程技术网

接受泛型类型参数的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>{}