gpt4 book ai didi

Java:如何调用接口(interface)中的implementclass元素?

转载 作者:行者123 更新时间:2023-11-30 07:12:31 24 4
gpt4 key购买 nike

类框架:

public class Tree<AnyType extends Comparable <? super AnyType>> {
private static class BinaryNode<AnyType>{}

private BinaryNode<AnyType> root;
public Tree(){}
public void makeEmpty(){}
public boolean isEmpty(){
/*code*/
}
public boolean contains(AnyType x){
/*code*/
}
public boolean contains(AnyType x, BinaryNode<AnyType> node){
/*code*/
}
}

我想创建一个接口(interface),但 BinaryNode 是私有(private)的:

public interface TreeFramework<AnyType> {
public void makeEmpty();
public boolean isEmpty();
public boolean contains(AnyType x);
public boolean contains(AnyType x, BinaryNode<AnyType> e); //fail
}

我必须创建一个公共(public) BinaryNode 类吗?

最佳答案

我看到的问题是您收到编译器错误,因为客户端代码找不到任何要导入的 BinaryNode 类。您始终可以接受普通的旧 java.lang.Object,并使用 Object#equals() 方法来确定相等性,就像大多数标准库集合一样。

查看您的界面设计,我不明白客户端代码如何访问 Tree 类中的 BinaryNode 引用。除非此接口(interface)不完整,否则在 contains 方法中公开 BinaryNode 类似乎对潜在客户没有多大作用。

关于Java:如何调用接口(interface)中的implementclass元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38987184/

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