이것은 App-Development에 대한 교과서에서 발췌 한 것입니다.Eclipse, 해결할 수 없음
문제는 : 코드에 오류가 하나 있는데, 이클립스로 해결할 수있는 방법이 있어야합니다. 교과서에 대한 해결책은 없습니다.
내 생각에 문제는 "abc.setText" Eclipse에는 6 개의 빠른 수정이 있지만 그 중 아무 것도 작동하지 않습니다.
어떻게 해결할 수 있습니까?
이것은 App-Development에 대한 교과서에서 발췌 한 것입니다.Eclipse, 해결할 수 없음
문제는 : 코드에 오류가 하나 있는데, 이클립스로 해결할 수있는 방법이 있어야합니다. 교과서에 대한 해결책은 없습니다.
내 생각에 문제는 "abc.setText" Eclipse에는 6 개의 빠른 수정이 있지만 그 중 아무 것도 작동하지 않습니다.
어떻게 해결할 수 있습니까?
TextField
변수 abc
은 로컬로 init
에 정의되어 있으므로 doSomething
메서드의 범위에서 사용할 수 없습니다. 클래스 멤버 변수로 선언되거나 메서드에 전달 될 수 있습니다. 당신은
private TextField abc;
을 추가하고
TextField abc = new TextField();
와
abc = new TextField();
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 세가 되어도이 질문에 답하고 싶습니다.
"이클립스로 해결할 수있는 방법이 있어야한다. 해결책은 없다."
여기서 쉬운 방법은 "리 팩터링"입니다. "abc"를 마우스 오른쪽 버튼으로 클릭 한 다음 "리 팩터"를 선택하고 "로컬 변수를 필드로 변환"하위 메뉴에서 선택하십시오.
코드에서 필요한 모든 변경 사항은 Eclipse 자체에서 수행됩니다. 결과 코드는 이미 다른 솔루션에 게시 된 코드와 동일합니다.
완벽한, 감사합니다. – user2080245