是否可以使用Java中的两个Generic创建对象?

use*_*632 3 java generics

我想使用两个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)

但它不起作用......它是不是有点错误的语法?我真的需要这种语法.谢谢

Zho*_*gYu 6

这是无效的语法

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)