首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中通过引用等效传递?

在Java中通过引用等效传递?
EN

Stack Overflow用户
提问于 2016-10-20 00:49:10
回答 1查看 139关注 0票数 -2

我有两个类用于查看和控制模型中的两个对象。视图/控件类是JPanels。其中一个对象保存设备,另一个保存此设备的配置。我初始化负责查看/控制配置的类,然后初始化设备的查看/控制,在构造函数中传递配置。问题是,当在configuration对象(位于保存它的JPanel内)中更改配置时,它也必须在device对象中更改。我想传递一个配置的引用,而不是对象的值,但我知道这在java中是不可能的。有没有等同于此的东西,或者我必须做监听器?如果是这样,我应该使用什么来监听在相应JPanel中的configuration对象中所做的更改?

编辑:以下是变量:

代码语言:javascript
复制
private viewControl.JConfiguracoesParametros jConfiguracoesParametros1;
private viewControl.JEnsaiosDeCampo jEnsaiosDeCampo1;

这就是我初始化它们的方式:

代码语言:javascript
复制
jConfiguracoesParametros1 = new viewControl.JConfiguracoesParametros();
jEnsaiosDeCampo1 = new viewControl.JEnsaiosDeCampo(jConfiguracoesParametros1.getConfig(), jSelecaoAspersor1.getDadosAspersor(), new PerfisRadiais());

我需要的是jEnsaiosDeCampo1始终具有ConfiguracesParametros1.getConfig()中的值。以我现在的方式,如果我试图使用依赖于jConfiguracoesParametros1jEnsaiosDeCampo1中的任何东西,我会得到一个NullPointerException,即使我已经在jConfiguracoesParametros1中创建了configuration对象。

EN

回答 1

Stack Overflow用户

发布于 2016-10-20 01:10:04

首先,您应该有一个视图类和一个单独的控制器类

第二个java总是通过引用传递。

当您更改配置时,您的jpanel应该通知控制器某些内容已通过控制器中的公共配置(HandleConfigChanged)等方法进行了更改。然后该处理程序将该信息发送到该设备,并询问是否重新加载它。

代码语言:javascript
复制
public class Device{
    ...

    public void reloadConfig(config){
    ...
    }
}


public class Controller{
    ...

    public boolean handleConfigChanged(config){
    ...
    device.reloadConfig(config);
    }
}

public class View{
    ...
    private void changeConfig(config){
    ...
    controller.handleConfigChanged(config);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40137268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档