왜 다른 방법으로 정의 된 내부 클래스 내부의 최종 변수를 참조 할 수 없습니까?
나는 이것에 관한 주제를 보았고, 대부분의 사람들은 당신의 구성 요소가 최종적이어야한다고 말합니다 .... 그러나 아무도 왜 그런 말을하지 않습니까? !! 나는이 한계 뒤에있는 철학이 무엇인지 모른다.
나를 더 혼란 다음 코드가 잘못이라는 것이다 무엇이 :다른 방법으로 정의 된 내부 클래스 내부의 최종 변수를 참조 할 수없는 이유는 무엇입니까?
JButton removeJBtn = new JButton("Remove");
JButton addJBtn = new JButton("Add");
//...
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
removeJBtn.disable();//Error here,Cannot ...
}
});
나는 (클래스의 몸이 아닌 방법) 멤버 필드로
JButton removeJBtn
를 정의하는 경우는 아니지만 최종으로 정의해야합니다!
나는이 일상적인 한계에 대한 논리적 인 답변을 정말 고맙게 생각합니다.
적어도 원래의 질문에 대한 참조를 (즉,이 확실히 대답되었습니다!)주세요, 중복으로이 질문을 표시 친애하는 사용자, 내가 그것을 읽어 내 질문에 위에 추가에 대한 링크가 자바가 최종 변수의 가치를 포착하고, 최종 변수의 가치를 포착하고 그 아래의 의견 (16 표)에 의해 완전히 거부되었다고 말하는 사람도있다.
[여기] (http : // stackoverflow.com/questions/1299837/within-an-final-variable-inside-an-different-defined-in-differen를 참조 할 수 없습니다. – Salah
참고 : 내부 클래스와 익명 클래스는 완전히 다른 것입니다! – Smutje
@Smutje : 더 설명해 주시겠습니까? – mok