Java嵌套嵌套类

时间:2019-01-14 22:10:10

标签: java

我很好奇(如果?)嵌套嵌套类应该如何工作。

Eclipse Oxygen.3并未提及“对象团队”,但是我认为以下代码示例了一些反模式,因为我看不到嵌套嵌套类的业务需求。

public class CACCIData {
...
    public CompanySearchResultsResult.CompanySearchResult mcCompanySearchResult = null;

    public static class CompanySearchResultsResult {
        public List<CompanySearchResult> CompanySearchResult 
            = new ArrayList<CompanySearchResult>();

        public static class CompanySearchResult {
// ...
        }
    }

Eclipse 2018-12编译错误:'CACCIData$CompanySearchResultsResult' cannot be used as type anchor for an externalized role: is not a team (OTJLD 1.2.2(b)).

1 个答案:

答案 0 :(得分:1)

双重嵌套的类在语法上是有效的。以下代码可以正常工作并打印出可预测的逻辑输出:

public class Test {
    public static void main(String[] args) {
        new A().testPrintA();
    }
    public static class A {
        public void testPrintA() {
            System.out.println("Works from A.");
            new B().testPrintB();
        }
        public static class B {
            public void testPrintB() {System.out.println("Works from B.");}
        }
    }
}

现在站在“您应该使用它”的一面...这是有根据的,但是我相信这种构造提供最佳解决方案的机会不会太多。