当前位置:  开发笔记 > 编程语言 > 正文

如何在非静态内部类的另一个实例中引用外部类?

如何解决《如何在非静态内部类的另一个实例中引用外部类?》经验,为你挑选了1个好方法。

我正在使用Apache Commons EqualsBuilder为非静态Java内部类构建equals方法.例如:

import org.apache.commons.lang.builder.EqualsBuilder;

public class Foo {
    public class Bar {
        private Bar() {}

        public Foo getMyFoo() {
            return Foo.this
        }

        private int myInt = 0;

        public boolean equals(Object o) {
            if (o == null || o.getClass() != getClass) return false;

            Bar other = (Bar) o;
            return new EqualsBuilder()
                .append(getMyFoo(), other.getMyFoo())
                .append(myInt, other.myInt)
                .isEquals();
        }
    }

    public Bar createBar(...) {
        //sensible implementation
    }

    public Bar createOtherBar(...) {
        //another implementation
    }

    public boolean equals(Object o) {
        //sensible equals implementation
    }
}

除了声明方法之外,有没有语法可以引用它otherFoo参考getMyFoo()?喜欢的东西other.Foo.this(哪个不起作用)?



1> 小智..:

没有.

最好的方法可能就是你的建议:在你的内部类中添加一个getFoo()方法.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有