ホームページ  >  記事  >  Java  >  アイテム マーカー インターフェイスを使用してタイプを定義する

アイテム マーカー インターフェイスを使用してタイプを定義する

PHPz
PHPzオリジナル
2024-07-17 09:02:20816ブラウズ

定義と目的

マーカーインターフェイス:

  • メソッド宣言は含まれません。
  • クラスを特定のプロパティを持つものとしてマークします。
  • 例: Serializable は、クラスをシリアル化できることを示します。
  • マーカーインターフェイスの利点

型定義:

  • マーカー インターフェイスは、クラスのインスタンスが実装する型を定義します。
  • コンパイル時のエラー検出を可能にします。

例:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:コレクション次の記事:コレクション