본문 바로가기

Archived(CSE Programming)/Java

Java 마커 인터페이스

Java의 마커 인터페이스는 다음과 같이 메소드와 상수를 포함하고 있지 않은 표시용 인터페이스를 뜻한다.

public interface marker{
}

그럼, 이러한 마커 인터페이스는 왜 쓰는가?

정답은 간단하다. 해당 클래스 파일을 컴파일러와 JVM에게 특별한 방식으로 처리해야 함을 알릴 수 있다.

우리가 흔히 쓰는 Serializable, Cloneable과 같이 직렬화, 복제화를 함에 있어 특별한 방식으로 처리해야 함을 알린다.

 

참고로, 마커 어노테이션이라는 문법도 존재한다.

@Retention(RetentionPolicy.RUNTIME)
@interface Markable1{	
}

Class clazz = this.getClass();
if(clazz.isAnnotationPresent(Markable1.class)){
	operationA();
}

다음과 같이 특정 인터페이스에 마커 어노테이션을 통해 해당 어노테이션이 적용된 것인지를 확인할 수 있다.

차이점은 마커 인터페이스는 상속 관계의 클래스들에게도 영향을 미치지만 마커 어노테이션은 그렇지 않다.

'Archived(CSE Programming) > Java' 카테고리의 다른 글

Java_자바의 기본  (0) 2020.01.13
Java 깊은 복사와 얕은 복사  (2) 2019.11.03
Java_메모리 구조  (0) 2019.11.03
Java 예외처리  (0) 2019.11.03
Java 컬렉션(Collection)  (0) 2019.11.03