gpt4 book ai didi

java - "T extends Junk"在 Java 的泛型类中意味着什么?

转载 作者:行者123 更新时间:2023-11-29 07:11:21 26 4
gpt4 key购买 nike

我试图理解这里发生的事情的这种表示法 Example also below .我正在寻找是否有人可以提供额外的代码来帮助我理解这一点。我如何使用 T 扩展垃圾?这意味着什么?

public class Junk<T extends Junk>
{

public Junk()
{

}

public T returnType()
{
return null; //? what would I even return
}

//what would I do to make sense of this class
}

最佳答案

T 是泛型类型参数。你知道它是垃圾,或者它的子类。要从你的方法中返回任何有用的东西,你需要一些其他使用相同类型的方法。例如:

public class Junk<T extends Junk> {
T var;

public void setT(T var) {
this.var = var;
}

public T returnType(){
return var;
}
}

它可以通过创建指定类型参数的实例来使用:

Junk junk = new Junk<Junk>();
junk.setT(new Junk<Junk>());
junk.returnType();

这比简单地使用“Junk”而不是“T”更有用,因为可以在不失去类型安全的情况下使用子类型。如果你有一个子类SubclassJunk,那么你可以这样做:

Junk junk = new Junk<SubclassJunk>();
junk.setT(new SubclassJunk<Junk>());
SubclassJunk subclass = junk.returnType();

关于java - "T extends Junk"在 Java 的泛型类中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13632916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com