我想使用泛型类作为另一个泛型类的类型参数。
起初,我对类的定义是这样的:
class Foo<T, R extends BaseDto> {}
然后我的需求发生了变化,我不得不为我的R类型使用包装器/持有者类
到目前为止,我的尝试:(给出编译时错误:栏上预期的类或接口
class Bar<T extends BaseDto> {
private T dto;
public Bar(T dto) {
this.dto= dto;
}
// getters and setters
}
class Foo<T, Bar<R>> {
private T entity;
private R dto;
// getters and setters
}
我不能把它用作Foo
我将如何实施这种行为?
你会用
class Foo<T extends CustomClass, R extends Bar<T>> {}
如果条形图是固定的,即如果用户不需要另一个扩展条形图的类,则需要去掉R,只使用条形图
看起来你需要的可能是:
class Foo<T, R extends CustomClass, S extends Bar<R>>
不要更改类标题,而是将类中使用R
的地方替换为
条
因此类标题保持不变:
class Foo<T, R extends CustomClass>
但是假设有一个类型为R的字段。需要将其更改为条形图
Bar<R> someField;
我在我的一个实用程序类中有一个方法,它接受一个集合和一个类对象,并返回一个Iterable实例,该实例可以遍历作为指定类实例的集合的所有成员。其签名为: 这对于大多数用例都非常有效,但现在我需要将其与泛型类
问题内容: 我有一个方法以a 作为参数。 在中,我如何知道a 是还是a 是? 问题答案: 根据用户omain的回答“如果使用<?>,则意味着您将不会在任何地方使用参数化类型。要么转到特定类型(在您的情况下,似乎是),要么转到非常通用的“ 另外,我相信如果您使用问号,编译器将在运行时(类型;有效Java的第119页)消除类型不匹配的情况,绕过擦除,并有效地消除了使用泛型类型所带来的好处? 要回答发问
问题内容: 您认为可以创建类似的东西吗? 问题答案: 是的你可以。 用法示例:
我试图创建一个返回泛型类型参数的方法。 我有一个类车辆订单扩展抽象类订单。在类订单中,我创建了一个抽象方法接收HiredObject。这个方法不会接收任何参数,并将返回一个泛型。 我在VehicleOrder类中实现了这个方法,并将其设置为返回类参数vehicle。 问题是,当我实例化一个新的VeilceOrderorororororororororororororderororororororo
我有一个从数组中检索元素的方法,我想对几个基元类型(int[]、double[]、...)使用相同的方法。方法如下: 但是,如何获取数据的类型以使用适当的基元类型实例化selectedElements数组? 非常感谢
问题内容: 问题摘要: 我想将具有类型参数(例如)的类作为类型参数传递给泛型方法。 假设我有一个方法: 当然,此方法对于任何类型的类都可以正常使用。我可以这样调用该方法,例如: 问题: 我发现我不能这样做: 从句法上讲,这显然是无效的。但是,我不确定如何实现这样的目标。我当然可以通过,但是泛型类型的添加使其在语法上不再有效,并且我想不出解决方法。 唯一的直接解决方案是这样的事情(看起来很愚蠢):