2013-11-09 17 views
0
T get(int i) { 
    if (i < 0 || i > n - 1) throw new IndexOutOfBoundsException(); 
    return a[i]; 
} 
T set(int i, T x) { 
    if (i < 0 || i > n - 1) throw new IndexOutOfBoundsException(); 
    T y = a[i]; 
    a[i] = x; 
    return y; 
} 

我正在看我的教科書中的一些編碼示例,但他們從未提及T是什麼。我不知道如何搜索這個,因爲我不知道它叫什麼或它的目的。 我想知道是否有人可以給我看寫或關於此的一些信息。謝謝這個代碼中的「T」代表什麼?

+3

這是一個泛型類型參數 - 將其視爲「某種類型,T」。請參閱:http://docs.oracle.com/javase/tutorial/java/generics/ – yshavit

+0

我們可以看到完整的類定義。我希望T是一個通用類型,而不是一個類的名稱... – CodaFi

+0

你應該閱讀[this](http://docs.oracle.com/javase/tutorial/java/generics/types.html) 。 – Maroun

回答

1

T代表使用generics的對象類型。

無論x哪種類型在set調用中,set方法都會返回相同的類型。在get呼叫中,返回類型也是T。該類型必須在其他地方定義,可能是類的類型,它可能顯示爲<T>

因此,如果這是一個類,它是某種藏品的(因爲它在處理索引),它可以被定義爲:

public class SomeCollection<T> { 

然後,它可能會被實例化,如:

SomeCollection<String> arr = new SomeCollection<String>(); 

在這種情況下,TString,和的getset方法的返回類型,並set參數x的類型,都將是String

如果它被實例化,如:

SomeCollection<Integer> arr = new SomeCollection<Integer>(); 

然後TInteger

您可以使用相同的代碼,而不必編寫兩個(或更多)不同版本的SomeCollection