1
  1. 是什么T意思S
  2. public void main(String... abc); 是什么...意思?...也称为泛型?
4

6 回答 6

10
  1. 那是参数化类型。您可以在此处使用任何标识符来表示某种对象类型。
  2. 那是可变参数。您可以传入单个字符串、多个字符串或字符串数​​组。
于 2009-12-10T02:36:19.007 回答
3

T并且S是通用类。它们可以是您想要的任何类型的类。例如,Map<K, V>K用于键类和V值类。

Map<Integer, String> map = new HashMap<Integer, String>

至于String...,它表示任意数量的 String 参数。

于 2009-12-10T02:37:41.797 回答
1
  1. 请阅读文档。简而言之,它们是类型参数,因此泛型类型和方法可以知道它们正在作用于什么类型的对象。
  2. 这表明该方法可以接受可变数量的参数。请参阅可变参数。它基本上是围绕数组的糖。
于 2009-12-10T02:36:45.027 回答
1

Sun 的 Java 泛型文档有时可能有点难以理解,因此我尝试编写一个更简单的 Java 泛型教程。你可以在这里找到它:

http://tutorials.jenkov.com/java-generics/index.html

于 2009-12-10T18:21:10.423 回答
0

补充: 与 .String...几乎相同String[]
在方法方面它是相同的,
在调用方面是不同的:编译器从参数创建数组。

void method(String... args) {
    // args is an array: getClass() returns [java.lang.String
    if (args.length >  0) {
        System.out.println(args[0]);
...
    method();               // same as method(new String[0]);
    method("1", "2", "3");  // same as method(new String[] {"1", "2", "3"});
于 2009-12-10T14:48:50.963 回答
0

T 和 S 表示类本身不知道它们是什么类,但使用该类的东西知道。

以 java.util.List 为例。列表类对 T 一无所知,也不对 T 做任何假设。使用List 类的事情:

List<MyBean> l = new ArrayList<MyBean>();

知道里面有什么。

于 2012-07-18T03:29:21.087 回答