final을 쓰게 되면 지역 변수는 상수화 되어서 계속 해서 지속되게 된다(?). 그래서 쉽게 말하면 Listener로 전달하고 싶은 지역변수는 final 로 처리해야 한다는 말이다.
조금 더 자세히 이야기 하자면, Oncreate에 선언한 변수들은 지역변수로서 Oncreate function이 종료하면 사라지게 된다. 그 경우 Onclick 이나 OnTouch와 같이 click 이나 Touch 할 때 마다 불리는 함수에서는 지역변수를 접근할 수가 없다. Oncreate function이 종료함과 동시에 그 안에서 호출된 지역변수들은 모두 사라지기 때문이다. 하지만 final을 붙여주면 그 변수는 상수화 되어 메모리에 계속 남아 있게 되는 것이다.(?) 아마도..
조금 내용이 어려워서 제대로 이해 했는 지 모르겠다.
자세한 이야기는 밑의 블로그에 잘 나와있다.
출처: http://devbible.tistory.com/30
댓글 없음:
댓글 쓰기