擦除&类型推理存在一些问题。我有以下的类层次结构,看起来并不很复杂:Java擦除类型推理
public class Foo<T> {
}
public class Bar<T> {
private final Class<T> clazz;
public Bar(Class<T> clazz) {
this.clazz = clazz;
}
}
而我正在试图做的是这样的:
Bar<Foo<?>> bar = new Bar<>(Foo.class);
其中,当然,不工作,因为Foo不完全是Foo<?>
。问题是如何构建这样的Bar?我只需要Bar<Foo<?>>
,而不是Bar<Foo>
,因为有方法只接受Bar<Foo<?>>
作为参数。欣赏想法。
您可以将'Foo.class'强制转换为'Class>',这可能会为您的目的对这个问题进行充分的论证。 (你不能仅仅用'Class'对象来代表不同的泛型。) –