Java 使用泛型类作为类型参数

Java 使用泛型类作为类型参数,java,generics,Java,Generics,我想使用泛型类作为另一个泛型类的类型参数 起初,我的类定义如下: class Foo<T, R extends BaseDto> {} 我不能将其用作Foo,因为这样使用该类的客户机就不会知道他们实际上需要从对象转换为条形 我将如何实施这种行为?看起来您需要的可能是: class Foo<T, R extends CustomClass, S extends Bar<R>> class-Foo 您将使用 class Foo<T extends Cus

我想使用泛型类作为另一个泛型类的类型参数

起初,我的类定义如下:

class Foo<T, R extends BaseDto> {}
我不能将其用作
Foo
,因为这样使用该类的客户机就不会知道他们实际上需要从
对象
转换为
条形


我将如何实施这种行为?

看起来您需要的可能是:

class Foo<T, R extends CustomClass, S extends Bar<R>>
class-Foo
您将使用

class Foo<T extends CustomClass, R extends Bar<T>> {}
class Foo{}

如果
Bar
是固定的,也就是说,如果用户不需要另一个类扩展
Bar
,那么您需要摆脱
R
,只需在
Foo

内部使用
Bar
,而不是更改类标题,用
R
替换类中使用
Bar
的所有地方

因此,类标题保持不变:

class Foo<T, R extends CustomClass> 

这里的每个回答者似乎都对这个问题有不同的解释。。。我建议你发布更多的代码,展示你期望你的类在需求改变前后如何工作。我认为你在寻找更高级的类型。它们不能用大多数主流语言直接表达。如果你眯着眼睛看的话,有一些解决办法,正如答案所示。我以前试过,但对我的情况不起作用。在阅读了你的答案后,再次尝试,发现错误在我这方面。解决方案是将字段类型从
R
更改为
Bar
class Foo<T, R extends CustomClass> 
Bar<R> someField;