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

PHPz
リリース: 2024-07-17 09:02:20
オリジナル
884 人が閲覧しました

定義と目的

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

  • メソッド宣言は含まれません。
  • クラスを特定のプロパティを持つものとしてマークします。
  • 例: 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 サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!