“T”在此代码中代表什么?

时间:2013-11-09 20:43:56

标签: java

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是什么。我不知道如何搜索这个,因为我不知道它叫什么或它的目的。 我想知道是否有人可以向我展示一篇关于此的文章或一些信息。谢谢

1 个答案:

答案 0 :(得分:1)

T表示使用generics的对象类型。

x调用中的set类型无关,set方法将返回相同的类型。在get调用中,返回类型也是T。该类型必须在其他地方定义,可能在类的类型中,它可能显示为<T>

因此,如果这是一个类是某种集合(因为它处理索引),它可能被定义为:

public class SomeCollection<T> {

然后它可能会被实例化为:

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

在这种情况下,T将是Stringgetset方法的返回类型以及set参数的类型{ {1}},都是x

如果它被实例化为:

String

然后SomeCollection<Integer> arr = new SomeCollection<Integer>(); T

您可以使用相同的代码,而无需编写两个(或更多)不同版本的Integer