Java Generic 클래스를 정의하고 그 클래스에서만 사용할 Exception 을 inner 클래스로 정의해서 사용하려 했더니 컴파일 에러가 난다. 하지만 그 Exception 을 static 으로 바꾸니 에러가 나지 않는다. 이유가 뭔가 했더니...
SomeGenericClass<T>.SomeInternalException
. So, Java doesn't allow the static inner class of a generic class to extend Throwable
.static 으로 바꾸면 그 inner 클래스는 generic 클래스가 아니다.
A workaround would be to make
SomeInternalException
a static inner class. This is because if the innerclass is static
its type won't be generic, i.e., SomeGenericClass.SomeInternalException
.자세한 내용은 아래 참조
http://stackoverflow.com/questions/13694637/making-the-inner-class-of-a-generic-class-extend-throwable
댓글 없음:
댓글 쓰기