我有一个外层的对象。如何从中获取内部类的对象?

时间:2014-12-12 15:05:02

标签: java oop inner-classes

public class Class1 {

  public Class2 getClass2() {
  //How can I implement this method?
  }

  public class Class2 {
  //...
  }
}

我无法完成它,即使它只应该是一行代码......

4 个答案:

答案 0 :(得分:1)

你不应该这样做。内部类应该在外部类中使用而不是在其他地方使用。 如果你需要一个内部类的实例,那么它应该不是一个内部类。

答案 1 :(得分:0)

只需在外部类中创建一个getter方法。

public class Class1 {

  public Class2 getClass2() {
  //How can I implement this method?
  }

  public Class2 getClass2() {
    return new Class2();
  }

  public class Class2 {
  //...
  }
}

答案 2 :(得分:0)

我认为你的内部类概念是错误的。在您的示例中,您有一个公共内部类。这并不意味着您的Class1只有一个Class2对象。您仍然可以根据需要创建Class2的任意对象。如果您想在Class1之外执行此操作,请使用new Class1.Class2()。虽然这是可能的,但在他的回答中正确地提到galovics将是糟糕的设计。

如果您要实现的目标是在Class2内对Class1对象进行一次对象引用,请在Class2中使用Class1类型的字段和匹配的getter方法:

public class Class1 {

    private Class2 class2instance = new Class2();

    public Class2 getClass2() {
        return class2instance;
    }

    private class Class2 {
        //...
    }
}

答案 3 :(得分:0)

public class Class1 {
    private Class2 class2 = new Class2();

    public Class2 getClass2() {
        return class2;
    }

    public class Class2 {
    //...
    }
}