Java에서 일부 리팩토링을 수행해야하며 어느 정도의 바이너리 호환성을 유지해야합니다. 이 경우에는 더 이상 사용되지 않고 오히려 커다란 (또한 사용되지 않을 수도있는) 외부 종속성을 필요로하는 일부 레거시 인터페이스를 제거하려고합니다.인터페이스에서 객체에 대한 메소드 호출 코드를 제거합니까?
I
인터페이스를 구현하는 클래스 C
이 있고 C
인스턴스에서 (인터페이스에 선언 된) 메서드를 호출하는 코드가 있습니다. 호출 코드는 인터페이스가 아니라 C
을 사용하고 있음을 알고 있습니다.
class C implements I {
void theMethod(){} ; // is declared in the interface I
}
C object;
object.theMethod();
내가 클래스 정의에서 인터페이스를 제거합니다 (그러나 모든 방법을 유지)하는 경우 (모든 인터페이스를 참조하지 않음) 호출 코드는 여전히 (재 컴파일없이) 작동합니까?
이 질문을 작성하고 서식을 지정하는 것보다 시도하는 데 시간이 덜 걸립니다.) –
내 손님이 되십시오 ;-) – Thilo
완료되면 관심있는 상황에 대한 내 대답의 링크를 참조하십시오. –