java - 如何从对象的方法外部访问对象

标签 java swt

我有一个看起来很简单但我无法解决的问题。

这是我的问题的简化版本:

public void createContents() {
  Composite dataCalcComposite = new Composite(shell, SWT.NONE);
  dataCalcComposite.setBounds(0, 10, 279, 146);
}

public void repositionObjects() {
  dataCalcComposite.setLocation(50, 10)
}

这不起作用,因为 repositonObjects 无法看到 dataCalcComposite 变量。

我知道我可以通过在第一个方法中调用 repostionObjects 并将变量作为参数传递来解决此问题,但这是我的问题和需要的对象数量的一个非常简化的版本重新定位会发生变化,所以我认为这个方法行不通。

此外,我无法在变量上使用 static,我的 IDE 表示只有 final 可以使用它。

因此,如果无法在变量上使用 static,我如何从其他方法访问它?

最佳答案

您可以将声明 Composite dataCalcComposite; 移至方法外部,这样该变量将成为实例变量。

....
private Composite dataCalcComposite;

public void createContents() {
  dataCalcComposite = new Composite(shell, SWT.NONE);
  dataCalcComposite.setBounds(0, 10, 279, 146);
}

public void repositionObjects() {
  if (dataCalcComposite != null) {
      dataCalcComposite.setLocation(50, 10)
  }
}
....

关于java - 如何从对象的方法外部访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27033156/

相关文章:

java - Spring HandlerInterceptors 是如何实例化的?

java - 在 TableViewer 中添加、编辑、删除元素

java - Eclipse Java JDE 中的 SWT 不工作

java - SWT 应用程序 : Java heap space: java. lang.OutOfMemory

Java 如何在两个表中添加数据(关系型数据库)

java - 安装了基于 APR 的 Apache Tomcat Native 库的不兼容版本 1.1.12,而 Tomcat 需要版本 1.1.17

java - 如何使用 swt 显示警告消息?

java - 在表 SWT/RCP 中移动项目

java - java中有没有办法限制一个包对其他包的可见性

java - 如何迭代由 firebase 随机生成的不同键值