这是关于App-Development的教科书。
import java.awt.TextField;
public class ESA
{
public void init()
{
TextField abc = new TextField();
}
public void doSomething()
{
abc.setText("Hello World");
}
}
问题是:代码中有一个错误,应该有一种方法可以用Eclipse解决它。教科书没有解决方案。
在我看来,问题是“abc.setText” Eclipse有6个快速修复,但它们都不起作用。
有谁知道如何解决它?
答案 0 :(得分:4)
TextField
变量abc
在doSomething
方法的范围内不可用,因为它是在init
中本地定义的。它可以声明为类成员变量或传递给方法。你可以添加
private TextField abc;
并替换
TextField abc = new TextField();
与
abc = new TextField();
答案 1 :(得分:1)
import java.awt.TextField;
public class ESA
{
private TextField abc;
public void init()
{
abc = new TextField();
}
public void doSomething()
{
abc.setText("Hello World");
}
}
这应该有效。您的代码的abc
无法访问doSomething()
。
答案 2 :(得分:0)
我遇到过这个问题,因为我处理同样的问题,也许是同一本教科书。
所以这就是我想回答这个问题的原因,即使它已经有两年了。
“......应该有办法用Eclipse来解决它。没有给出教科书的解决方案。”
这里简单的方法是“重构”。右键单击“abc”,然后在子菜单“将局部变量转换为字段”中选择“重构”。
代码中所有需要的更改都将由Eclipse自行完成。生成的代码与此处已在其他解决方案中发布的代码相同。