내부 클래스 내부의 변수를 변경해야하고 "다른 메서드에 정의 된 내부 클래스 내부의 최종 변수를 참조 할 수 없습니다"오류가 있습니다.내부 클래스 비 최종 변수 java
void onStart(){
bt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int q = i;
}
});
}
나는 빨리 내가 변경을 원 모든 것들을 개최 클래스를 만들어이 보인다
class temp{
int q;
}
void onStart(){
final temp x = new temp();
bt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
x.q = i;
}
});
}
내가 필요하고이를 위해 내부 클래스 외부 클래스의 최종 버전을 만든 작동하지만 문제를 올바르게 해결하는 방법인지 궁금합니다. 또한, 내 수업에 이름을 짓기 위해 temp
이라는 단어를 사용하는 것이 정말 싫다. 내가했던 것을 실제로 프로그래밍 할 수있는 용어가있어서 수업을보다 잘 설명하는 이름을 만들 수 있습니까?
브라보. 다른 좋은 점은이 내부 클래스가 더 확장 가능하고 재사용 가능하다는 것입니다. IMO, 익명 내부 클래스는 거의 항상 나쁜 생각입니다. – user949300
이들은 하나의 작업 스타일 클래스, 즉 입력을 기반으로 작업을 수행 할 수있는 특정 이벤트 처리기로 잘 작동합니다. 그의 예제 인 GUI 프로그래밍에서 매우 일반적입니다. 이 경우를 제외하고는 문제를 복잡하게하는 클래스 간의 상호 작용이 있습니다. – Robin
이것은 내가 찾고 있었던 것이다! 감사! –