如何从其方法外部访问对象

时间:2014-11-20 06:27:59

标签: 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可以使用它。

因此,如果无法对变量使用静态,我如何从其他方法访问它?

1 个答案:

答案 0 :(得分:1)

您可以将声明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)
  }
}
....