2013-02-17 112 views
1

这是关于应用程序开发的教科书。Eclipse,无法解析

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

TextField变量abc在方法doSomething的范围内不可用,因为它在本地定义在init中。它可以被声明为一个类成员变量或传入该方法。你可以添加

private TextField abc; 

并更换

TextField abc = new TextField(); 

abc = new TextField(); 

Understanding Instance and Class Members

+0

完美,谢谢 – user2080245 2013-02-17 11:03:41

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()中访问。

0

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

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

“......应该有一种方法可以用Eclipse解决,没有解决方案给出的教科书。”

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

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