0

我的程序中有几个框架。我需要从任何地方访问数据我该怎么做?

public class Main{
    public int aData;
    public static void main(String[] args){
        Frame1 f = new Frame1();
    }
}

public Frame1 extends JFrame{

    // ....
    public void foo(){

        // I need aData in here.

    }

}

编辑1:我有多个数据,当其中一个更新时,主类中的数据应该更新。

4

3 回答 3

2

只需在Frame1构造函数中传递它

public class Main{
    public int aData;
    public static void main(String[] args){
        Frame1 f = new Frame1(aData);
    }
}

public Frame1 extends JFrame{
    private int data;
    public Frame1(int data) {
        this.data = data;
    }

    // ....
    public void foo(){
        // use data here
    }
}
于 2013-04-22T19:04:46.153 回答
2

最重要的问题是为什么你认为你需要这样做。如果您真的想要从任何地方访问的东西,您可以在某个地方将其设置为公共静态成员,但这是一种可怕的设计实践。

一般来说,你想让你的设计模块化,所以每件事只取决于它实际需要什么。然后,您可以向它传递一个对象,该对象提供它所需的数据,例如配置设置。这使您可以轻松地为单元测试等模拟事物,并减少对程序进行更改时需要重写的代码量。

于 2013-04-22T19:05:48.880 回答
-1

尝试将 Fram1 实例设为静态

于 2013-04-22T19:03:24.240 回答