说我有以下通用类:
public class Foo<T extends Bar> {
// stuff
}
是否可以指定默认类型(例如Baz
),如果没有传递T
,它将作为T
?
答案 0 :(得分:3)
没有。请参阅Java语言规范中的"Type Variables"。
也就是说,您可以提供实现类似目的的子类:
public class Foo<T extends Bar> { ... }
public class FooDefault extends Foo< Baz > { ... }
答案 1 :(得分:2)
使用像
这样的工厂方法public <T extends Bar> static Foo<T> getInstance(Class<T> clz) {
if (clz == null)
return new Foo<Bar>;
else
return clz.newInstance();
}