我想使用两个Generic定义实例变量,如下所示.
class Foo<S,T>{
private S<T> Boo ;
.
.
}
public class Test{
public static void main(String[] args){
Foo<ArrayList, String> foo = new Foo<ArrayList, String>();
}
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用......它是不是有点错误的语法?我真的需要这种语法.谢谢
这是无效的语法
S<T>
Run Code Online (Sandbox Code Playgroud)
因为对于any x<T>,x必须是已知的类或接口类型.
你想要的是容器类型和元素类型.这个有可能
class Foo<C extends Collection<E>, E>{
private C boo;
...
Foo<ArrayList<String>, String> foo = new Foo<>();
Run Code Online (Sandbox Code Playgroud)