1

这是一本关于应用程序开发的教科书。

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

有谁知道如何解决它?

4

3 回答 3

4

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

private TextField abc;

并更换

TextField abc = new TextField();

abc = new TextField();

了解实例和类成员

于 2013-02-17T10:39:52.790 回答
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()

于 2013-02-17T11:01:54.747 回答
0

我遇到这个问题是因为我研究了同样的问题,也许是同一本教科书。

所以这就是为什么我想回答这个问题,即使它已经两岁了。

“……应该有办法用Eclipse解决。教科书上没有给出解决方案。”

这里最简单的方法是“重构”。右键单击“abc”,然后选择“重构”并在子菜单中“将局部变量转换为字段”。

代码中所有需要的更改都将由 Eclipse 自己完成。生成的代码与其他解决方案中已发布的代码相同。

于 2015-09-08T18:45:36.107 回答