// main
String[] data = {"a", "b", "c"};
Foo<?, ?> gen = proc(data);
// end main
...
public <T> Foo<T, Integer> proc(T[] a) {
Foo<T, Integer> retval;
// some procedure
retval = new Foo<T, Integer>(result_from_procedure, 1);
return retval;
}
是否可以将对象声明为Foo<?, ?> or Foo<?, Integer>
以使其更通用,以便它可以保存proc(T[] a)
不同类型的T
中的对象?
答案 0 :(得分:0)
通配符(*)应与扩展或超界结合使用。对于所有其他情况,应使用确切的类型参数