2009-12-10 116 views
1
  1. TS是什么意思?
  2. public void main(String... abc); ...是什么意思? ...也称为通用的?

回答

10
  1. 这就是parameterized types。您可以在此处使用任何标识符来表示某个对象类型。
  2. 这就是varargs。你可以通过一个单一的字符串,或多个字符串,或在字符串数组。
1
  1. 请阅读the documentation。简而言之,它们是类型参数,以便泛型类型和方法可以知道它们正在执行什么类型的对象。
  2. 这表明该方法可以接受可变数量的参数。见varargs。它基本上是一个阵列周围的糖。
3

TS是通用类。他们可以是任何你想要的类。例如,Map<K, V>对密钥类使用K,对值类使用V

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

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

+0

1.我可以使用任何其他字母表,A,B,C,Z吗?而不是T,S,K,V? 2.是Map(K,V)与Map(S,T)相同吗?可以使用任何字母表? – cometta 2009-12-10 02:42:06

+2

您可以使用任何您想要的标识符,只要它不会与类路径中的现有类名冲突。正常的编码约定确实是一个单一的大写字符(因为只有一个字符作为名字的类是不正常的)。 – BalusC 2009-12-10 02:52:02

0

补充: String...几乎与String[]相同。
在方法方面,它是相同的,在调用端的
're是一个区别:编译器从参数中创建数组。

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"}); 
0

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

取java.util.List。该列表类不知道大约T t什么,不作任何T.事情假设使用 List类:

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

知道什么在它。