说我想做..
public class Foo{
public Foo(Object c){
Bar<c> bar = new Bar();
}
}
public class Bar<Type>{
......
}
这有可能吗?
最终,我想根据从&#34;对象C&#34;传入的数据类型动态地为Bar提供一个类型。这将由另一个类解析。
答案 0 :(得分:6)
像这样:
public <T> Foo(T c) {
Bar<T> bar = new Bar<>();
}
但请注意,这是基于c
的编译时类型,而不是运行时类型。
答案 1 :(得分:2)
不,它确实没有任何意义,因为Java中的泛型只存在于编译时,所以除非你在那时知道c
的某些内容,否则没有任何优势通过将Bar
转换为通用类型。
答案 2 :(得分:0)
由于类型参数无论如何都被擦除,Bar
的新实例对类型参数一无所知。因此,此代码缩减为
public Foo(Object c){
Bar bar = new Bar();
}