> Java > java지도 시간 > 항목 마커 인터페이스를 사용하여 유형 정의

항목 마커 인터페이스를 사용하여 유형 정의

PHPz
풀어 주다: 2024-07-17 09:02:20
원래의
943명이 탐색했습니다.

정의 및 목적

마커 인터페이스:

  • 메서드 선언을 포함하지 않습니다.
  • 클래스에 특정 속성이 있는 것으로 표시합니다.
  • 예: 직렬화 가능은 클래스를 직렬화할 수 있음을 나타냅니다.
  • 마커 인터페이스의 장점

유형 정의:

  • 마커 인터페이스는 클래스의 인스턴스가 구현하는 유형을 정의합니다.
  • 컴파일 시 오류 감지를 허용합니다.

예:

public class MyClass implements Serializable {
    // Implementação
}
로그인 후 복사

컴파일 시간 확인:

  • 마커 인터페이스를 사용하면 컴파일 중에 오류를 감지할 수 있습니다.

직렬화 가능한 예:

ObjectOutputStream.writeObject(myObject); // Garante que myObject seja Serializable
로그인 후 복사

마킹 정확도:

  • 마커 인터페이스는 특정 하위 유형에 정확하게 적용될 수 있습니다.

예:

public interface MyMarkerInterface extends MySpecificInterface {
    // Sem métodos adicionais
}
로그인 후 복사

사용예

직렬화 가능:

  • 클래스를 직렬화할 수 있음을 나타냅니다.

예:

public class Person implements Serializable {
    private String name;
    private int age;
    // Getters, setters, etc.
}

로그인 후 복사

인터페이스를 제한된 마커로 설정:

  • Collection의 하위 유형에만 적용되며, Collection에서 정의한 메소드 이외의 메소드는 추가하지 않습니다.
  • add, equals, hashCode와 같은 메서드 계약을 구체화합니다.
  • 글머리 기호와 비교

마커 메모:

  • 더 많은 프로그램 요소(클래스, 인터페이스, 메소드 등)에 적용 가능합니다.

예:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyMarkerAnnotation {
}

@MyMarkerAnnotation
public class MyClass {
    // Implementação
}

로그인 후 복사

마커 인터페이스를 사용하는 경우와 마커 주석:

  • 다음과 같은 경우 마커 인터페이스를 사용하세요.
  • 마크업은 유형을 정의해야 합니다.
  • 해당 마크업이 있는 객체만 허용하는 메서드를 작성하고 싶을 수도 있습니다.

다음과 같은 경우 마커 주석을 사용하세요.

  • 태그는 클래스나 인터페이스 이외의 요소에 적용됩니다.
  • 주석을 많이 사용하는 프레임워크의 일부입니다.

글머리 기호의 장점

  • 프레임워크의 일관성:
  • 주석 기반 프레임워크의 일관성을 촉진합니다.

예:

@MyFrameworkAnnotation
public class MyClass {
    // Implementação
}
로그인 후 복사

사용결정
유형을 정의하려면:

  • 마커 인터페이스를 사용하세요.
  • 클래스나 인터페이스가 아닌 요소를 표시하려면:
  • 글머리 기호를 사용하세요.

주석 기반 프레임워크의 일부:
글머리 기호를 사용하세요.

최종 예시

  • 마커 인터페이스:
public interface MyTypeMarker {
}

public class MyClass implements MyTypeMarker {
    // Implementação
}

public void process(MyTypeMarker obj) {
    // Processa apenas objetos marcados com MyTypeMarker
}

로그인 후 복사

북마크 참고:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnotationMarker {
}

@MyAnnotationMarker
public class MyClass {
    // Implementação
}

로그인 후 복사

요약

  • 마커 인터페이스는 추가적인 메소드 없이 유형을 정의하는 데 사용됩니다.
  • 마커 주석은 프로그램 요소를 광범위하게 표시하는 데 사용됩니다.
  • 마킹의 맥락과 목적에 따라 선택이 달라집니다.

보완
마커 인터페이스:
Image description

위 내용은 항목 마커 인터페이스를 사용하여 유형 정의의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿