Eclipse,无法解决

时间:2013-02-17 10:38:54

标签: java eclipse debugging

这是关于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个快速修复,但它们都不起作用。

有谁知道如何解决它?

3 个答案:

答案 0 :(得分:4)

TextField变量abcdoSomething方法的范围内不可用,因为它是在init中本地定义的。它可以声明为类成员变量或传递给方法。你可以添加

private TextField abc;

并替换

TextField abc = new TextField();

abc = new TextField();

Understanding Instance and Class Members

答案 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自行完成。生成的代码与此处已在其他解决方案中发布的代码相同。