2017-11-06 12 views
0

아래 코드를 보면 Marker interfacesBusinessObjectSerializable (오른쪽?)이라고 알립니다.Marker 인터페이스를 Seralizable로 바꿀 수 있습니까

오래된 코드 : BusinessObject의 유일한 목적은, 그것은 Serializable임을 나타냅니다 때문에

public final class State implements BusinessObject 
    ... 
} 
public class Location implements BusinessObject{ 
    ... 
} 

import java.io.Serializable; 
public interface BusinessObject extends Serializable{ 
} 

내 질문은,이 간단히 교체 할 수있다 :

public final class State implements Serializable { 
... 
public class Location implements Serializable { 
... 

BusinessObject.java을 삭제 하시겠습니까?

+1

마커 인터페이스를 다른 용도로 사용할지 여부에 따라 달라집니다. – SLaks

답변

1

BusinessObject은 실제로는 Serializable까지 확장됩니다.

더 넓은 의미에서, 제거하기 전에 온 전성 검사를 수행 할 수 있습니다.

예를 들어

, 당신의 IDE에 BusinessObject 인터페이스의 유형 계층을 열고 모든 등 클래스, 확장 인터페이스를 구현 봐

심지어 코드베이스 컴파일 것이지만 문제가 일어날 것 에지 경우가있을 수 있습니다 런타임시 BusinessObject 인터페이스가 리플렉션 또는 JSP와 같은 선언적 마크 업을 통해 참조 된 경우.

이러한 경우 전체 프로젝트에서 BusinessObject의 텍스트 검색을 권장합니다.

이렇게하면 더 이상 사용되지 않는 의견을 근절하는 데 도움이 될 수 있습니다.