2009-12-10 136 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>(); 

知道什麼在它。