如何在 equals 函数的子类方法中调用受保护的变量?

How can I call a protected variable in a subclass method in an equals function?

这是一个非常简单的 equals 方法。

这是我的代码中的内容:

public boolean equals(Object other) 
      if (other == null) {
                return false;
            }
            if (!(other instanceof BinaryTree)) {
                return false;
            }
            return this.equalsUtil(this.root, other.root);
        }

这是最初的问题

public class BinaryTree {
    protected class Node {
        //instancee variables and a constructor
    }
    protected Node root;
    //remainder ommited for brevity

我不能调用 other.rootObject other 是 equals 的参数),那我该怎么做呢?

注意我的class是public class MyBinaryTree extends Bina

遵循 Elliot 的建议或创建一个获取函数来定位您想要的确切值。也许制作一个函数来检查节点是否为根节点。您需要检查指向您的节点的指针是否指向与 root 相同的东西。

被保护的变量与此无关。您只需将 other 转换为 BinaryTree,例如BinaryTree o = (BinaryTree) other; return this.equalsUtil(this.root, o.root);