我有一个看起来很简单但我无法解决的问题。
这是我的问题的简化版本:
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/