달력

7

« 2020/7 »

  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  



 

 

인터페이스의 추상 메소드 구현시 TIP

인터페이스를 구현하는 클래스에서 필요없는 메소드라도 인터페이스로 부터 상속받는 추상메소드는 메소드 몸통(body)를 반드시 구현해 주어야 합니다.

 

public void absFunction(){

} 

 


이렇게 아무기능을 하지않는 즉, 단순히 메소드의 body를 구현하는 것보다는 예외(exception)를 던져서 '구현하지 않은 기능'이라는 것을 메소드 호출하는 쪽에 명시적으로 알려주는 것이 좋습니다. 그렇지 않으면 호출하는 쪽에서는 원본 소스를 구해서 코드를 보기 전까지는 이 기능이 정상적으로 동작하지 않는 이유을 알 수 있는 방법이 없습니다.

public void absFunction(){

throw new UnsupportedOperationException();

}

 

 

Java API 문서에도 해당 메소드를 지원하지 않는 경우 UnsupportedOperationException을 발생시키도록 구현하라고 안내되어져 있습니다.


https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html#remove--

 


Posted by codedragon codedragon

댓글을 달아 주세요