gpt4 book ai didi

java - 声明扩展某种类型的字段

转载 作者:行者123 更新时间:2023-12-02 00:06:57 25 4
gpt4 key购买 nike

我的语法有一些问题。我到处找,找不到正确的东西(我实际上不知道要搜索的短语是什么)。所以问题就在这里。为简单起见,假设我有 4 个类:

A类:

public abstract class A{
}

B 类:

public class B extends A{
//some methods and fields
}

C类:

public class C extends A{
//some other methods
}

D 级:

public class D{
protected ? value;
}

这里我有一个问题,因为我不知道该用什么来代替 ?class D ,如果我想定义?作为A的一些子类。我知道一个选项就是写 A而不是? ,但我认为这可以更具体,例如类似 <T extends A> .

这可能吗?

-编辑-

从下面的答案中,我看到这种方法是使用原始类型。但是,谁能确认java中不存在这样的构造呢?您可以创建一个泛型类型 T 的字段(扩展某个类),但是包含该字段的类没有泛型参数T

最佳答案

使用泛型类,如下所示:

public class D<T extends A> {
protected T value;
}

MyClass 并不依赖于 T 正如您在上面的评论中假装的那样。您可以实例化一个实例,而无需精确的通配符。因此,T 在编译时仍会被 A 替换这个概念称为:原始类型

了解更多信息:http://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html

关于java - 声明扩展某种类型的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13643382/

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