gpt4 book ai didi

java - 如何实现一个继承了接受自身参数的接口(interface)的类?

转载 作者:行者123 更新时间:2023-12-02 05:45:25 27 4
gpt4 key购买 nike

我正在使用此讨论中的习语 How can I make an interface instance method accept arguments of the same class only, really? :

interface ITree<SELF extends ITree<SELF>>{
SELF getNode(int index);

void setNode(int index, SELF node);
}

我的问题是,我怎样才能正确地实现扩展 ITree 的 Tree?我当前的代码如下所示:

public class B {
private ITree tree;
public B (ITree tree){
this.tree = tree;
}
}

正如预期的那样,它会发出警告,提示我应该添加类型。我想让使用 B 的类决定它应该使用哪种类型。或者更好的是,我根本不想使用泛型来解决这样的小问题。

编辑:

在评估答案后我找到了解决方案。魔鬼的详细信息如下:

<T extends ITree<T>>

这里是完整的源代码:

public class B<T extends ITree<T>> {
private T tree;
public B (T tree){
this.tree = tree;
}
}

最佳答案

public class B<T extends ITree> {
private T tree;
public B (T tree){
this.tree = tree;
}
}

关于java - 如何实现一个继承了接受自身参数的接口(interface)的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24119122/

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