gpt4 book ai didi

java - java中参数化类可以扩展自身吗?

转载 作者:行者123 更新时间:2023-12-02 09:07:53 24 4
gpt4 key购买 nike

我遇到了其他人编写的类的定义:

BaseClass<E extends BaseClass<E>>

该类的所有方法都按如下方式定义:

public<E> E setX(...) {
// do stuff
return this;
}

BaseClass 类的对象的使用方式如下:

base.setX(..).setY(..).setZ()..

这让我想知道它是如何工作的,为什么它甚至可以编译,为什么这样使用它以及声明一个类来扩展自身是否是一个好的做法。

任何帮助将不胜感激。

最佳答案

这里的“扩展”一词用于指定参数化(E)的边界,而不是用于自继承。 Java 中的自继承是被禁止的。

本质上它说:

BaseClass 使用 E 进行参数化。但 E 不能是任何类型(如 String、Integer 等),而 E 必须是扩展 BaseClass 的类型。

我看到了这种创建构建器层次结构的技术,这看起来也适合您的情况。

您可能有兴趣阅读this thread

关于java - java中参数化类可以扩展自身吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59658694/

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