我有一个看似简单的问题,但无法解决。
这是我的问题的简化版本:
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)
}
}
....