为什么是Java泛型的语法呢

问题描述 投票:0回答:2

在Java docs中,java泛型的示例如下。

/**
 * Generic version of the Box class.
 * @param <T> the type of the value being boxed
 */
public class Box<T> {
    // T stands for "Type"
    private T t;

    public void set(T t) { this.t = t; }
    public T get() { return t; }
}

为什么<T>紧接在Box之后。我知道T代表用户将使用的Type。但是,如果您看一下其余的语法,则T始终排在第一位。

例如,在private T t;中,T早于t。

在方法get()set(T t)中,我们再次看到T在方法名称之前,而不是在我们正在创建的对象或方法的名称之后。

据我了解,Box之类的类也是一个对象,所以我们为什么不写:

public class T Box { //... }

或者,或者,

public <T> class Box { //... }

我想知道这一点,因为它使我感到困惑。每当我编写通用方法时,我都必须返回到现有代码以查看最先出现的代码,因此,如果我知道为什么一个必须首先出现,为什么另一个必须最后出现的情况,则不必回到已经存在的位置现有代码并将其用作参考。

java generics
2个回答
0
投票

T类似于类/类型的变量。只需将您问题中的所有T替换为例如字符串或整数等,您将获得常规的Java语法。


0
投票

我知道T代表用户将使用的Type。

© www.soinside.com 2019 - 2024. All rights reserved.