<안드로이드/Android> Anonymous class must either be declared abstract or implement abstract method

Posted by 앱해피
2015. 6. 17. 16:19 안드로이드 스튜디오
Anonymous class must either be declared abstract or

implement abstract method 해결하기

 

 

 

 

이 에러가 발생되는 이유는 익명(Anonymous class - interface or abstract class) 클래스를 이용해서, 객체를 생성하고자 할 때, 클래스에서 반드시 구현해야만 하는 추상 메소드를 구현하지 않아 발생하는 에러 메시지 입니다.

 

 

위의 예제를 보시면 Runnable() 타입의 객체를 생성과 동시에 Thread() 생성자에 전달하고 있습니다. 하지만 Runnable 타입의 인터페이스에는 run()이라는 추상 메소드가 존재하는데 이 메소드를 구현하지 않았기 때문에 위와 같은 에러가 발생하게 됩니다.

 

 

 

위 그림과 같이 구현해야 할 추상메소드 run()을 구현했을 때에는 에러가 발생하지 않는 것 을  확인할 수 있습니다.

 

 

 

 

안드로이드 스튜디오(Android Studio)에서 구현해야 할 추상메소드 쉽게 알아보기

 

클래스를 이용하다보면 추상메소드를 구현해야 겠다는 것을 알고는 있지만 구체적으로 어떤 메소드를 구현해야 하는지 모르는 경우가 많이 있습니다. 이럴 경우에 안드로이드에서 자신이 구현해야 할 추상메소드를 알아볼 수 있는 기능을 살펴보겠습니다.

 

 

 

에러가 발생한 부분에 마우스를 대고 오른쪽 버튼을 클릭합니다.

그리고 Generate라는 항목을 선택합니다. 

 

 

 

그 다음에 Implement Methods를 선택합니다.

 

 

이제 자신이 구현해야 하는 함수들의 목록이 나옵니다 해당 함수를 클릭하고

 

해당 함수에 적절한 기능을 정의하면 문제는 해결됩니다 ^_^

 

 

 

 

 

감사합니다 ^_^