본문 바로가기

Java

[Java] 오늘의 교훈.


위와 같은 코드가 있었다.
 
위와 같은 상태에서 class A에 있던 public enum을 삭제하고
하나의 독립적인 클래스 파일로 E라는 enum 클래스를 생성하였다.

  어차피 public이고 Type도 그대로인지라
컴파일에러는 어디서도 떨어지지 않았고, 변경된 클래스인 A와 새로 만들어진 enum 클래스인 E만을
배포하여 컴파일하였다.

전혀 문제가 없을거라 생각했는데
문제는  User 클래스의 do() 메서드에서 발생하였다.

생각해보면 당연한 것인데...
기존의 E enum 클래스의 return type은
A$E 였고, 새로 뽑아낸 enum 클래스의 Type은 E였다. (기본적으로 앞에 붙는 패키지는 제외..)

결국, 타입이 맞지 않는 오류가 발생하여 위와 같이 기존의 E를 받아 쓰던 클래스들을
전부 다시 컴파일해주었다..

기본적으로 자바에서의 Type이라는 것이 패키지를 포함한 full name일 것인데
평소에 거의 망각하듯이 쓰다보니 아차 하는 상황이 발생하였음....