Java让类从彼此获取信息

时间:2014-11-22 19:38:50

标签: java

我们假设您有两个类,一个名为Main,另一个名为SecondSecond需要从Main获取变量,Main需要从Second

获取方法

示例:

public class Main 
{
  Second second = new Second();
  public int firstInt = 5;
  second.printThing();
}

public class Second 
{
    Main main = new Main();
    public void printThing() 
    {  
        System.out.println(main.firstInt);
    }
}

由于您无法在不出现堆栈溢出异常的情况下执行Main main = new Main();Second second = new Second;,您应该做什么?

2 个答案:

答案 0 :(得分:4)

假设MainSecond的实例应该保持对彼此的引用,您可以将引用传递给构造函数:

Main的构造函数:

public Main (Second second)
{
    this.second = new Second (this);
}

Second的构造函数:

public Second (Main main)
{
    this.main = main;
}

正如名称所暗示的那样,Second取决于Main(即没有Second的封闭实例,Main没有意义,您可以定义{ {1}}是Second的内部类,在这种情况下,它将隐式保存封闭类Main的实例。

答案 1 :(得分:0)

不要使用这种初始化,在另一个类中为每个类添加一个setter并在构造之后设置。

Main m = new Main();
Second s = new Second();
m.setSecond(s);
s.setMain(m);