Java 作为泛型参数的具体类
这些定义之间有什么区别吗Java 作为泛型参数的具体类,java,generics,Java,Generics,这些定义之间有什么区别吗 public class Foo<String> {} public class Foo{} 公共类Foo{} 公共类Foo{} 已更新 第一个可以有任何实际用途吗?是的,第一个相当于Foo,但是使用名为String(不是java.lang.String)的类型参数,而不是T。因此,您实际上没有使用具体的类作为类型参数(这是不合法的……请尝试将声明更改为class Foo)。谢谢。我只是想知道第一个定义是否有真正的用途?@Stas:就像我说的,你可以
public class Foo<String> {}
public class Foo{}
公共类Foo{}
公共类Foo{}
已更新
第一个可以有任何实际用途吗?是的,第一个相当于
Foo
,但是使用名为String
(不是java.lang.String
)的类型参数,而不是T
。因此,您实际上没有使用具体的类作为类型参数(这是不合法的……请尝试将声明更改为class Foo
)。谢谢。我只是想知道第一个定义是否有真正的用途?@Stas:就像我说的,你可以使用第一个定义,就像你可以使用定义Foo
,因为String
在那种上下文中并不意味着类String
。但我强烈建议您不要这样做!=)谢谢。应该有办法把这些东西包装起来开玩笑。