Rumah > Java > javaTutorial > Item Gunakan antara muka penanda untuk menentukan jenis

Item Gunakan antara muka penanda untuk menentukan jenis

PHPz
Lepaskan: 2024-07-17 09:02:20
asal
1018 orang telah melayarinya

Definisi dan Tujuan

Antara Muka Penanda:

  • Tidak mengandungi pengisytiharan kaedah.
  • Menandai kelas sebagai mempunyai sifat tertentu.
  • Contoh: Boleh bersiri menunjukkan bahawa kelas boleh bersiri.
  • Kelebihan Antara Muka Penanda

Takrifan Jenis:

  • Antara muka penanda mentakrifkan jenis yang contoh kelas dilaksanakan.
  • Membenarkan pengesanan ralat pada masa penyusunan.

Contoh:

public class MyClass implements Serializable {
    // Implementação
}
Salin selepas log masuk

Kompilasi Semakan Masa:

  • Penggunaan antara muka penanda membolehkan ralat dikesan semasa penyusunan.

Contoh dengan Serializable:

ObjectOutputStream.writeObject(myObject); // Garante que myObject seja Serializable
Salin selepas log masuk

Ketepatan Penandaan:

  • Antara muka penanda boleh digunakan dengan tepat pada subjenis tertentu.

Contoh:

public interface MyMarkerInterface extends MySpecificInterface {
    // Sem métodos adicionais
}
Salin selepas log masuk

Contoh Penggunaan

Boleh bersiri:

  • Menunjukkan bahawa kelas boleh bersiri.

Contoh:

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

Salin selepas log masuk

Tetapkan Antara Muka sebagai Penanda Terhad:

  • Hanya digunakan pada subjenis Koleksi, tetapi tidak menambah kaedah selain daripada yang ditakrifkan oleh Koleksi.
  • Memperhalusi kontrak kaedah seperti add, equals dan hashCode.
  • Perbandingan dengan Nota Peluru

Nota Penanda:

  • Boleh digunakan pada lebih banyak elemen program (kelas, antara muka, kaedah, dll.).

Contoh:

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

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

Salin selepas log masuk

Bila hendak menggunakan Antara Muka Penanda lwn. Anotasi Penanda:

  • Gunakan antara muka penanda jika:
  • Penanda mesti menentukan jenis.
  • Anda mungkin mahu menulis kaedah yang hanya menerima objek dengan penanda itu.

Gunakan anotasi penanda jika:

  • Teg digunakan pada elemen selain daripada kelas atau antara muka.
  • Ia adalah sebahagian daripada rangka kerja yang banyak menggunakan anotasi.

Kelebihan Bullet Notes

  • Ketekalan dalam Rangka Kerja:
  • Memudahkan ketekalan dalam rangka kerja berasaskan anotasi.

Contoh:

@MyFrameworkAnnotation
public class MyClass {
    // Implementação
}
Salin selepas log masuk

Keputusan Penggunaan
Untuk menentukan jenis:

  • Gunakan antara muka penanda.
  • Untuk menandakan elemen yang bukan kelas atau antara muka:
  • Gunakan nota peluru.

Sebahagian daripada rangka kerja berasaskan anotasi:
Gunakan nota peluru.

Contoh Akhir

  • Antara Muka Penanda:
public interface MyTypeMarker {
}

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

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

Salin selepas log masuk

Nota Penanda Halaman:

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

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

Salin selepas log masuk

Ringkasan

  • Antara muka penanda digunakan untuk menentukan jenis tanpa kaedah tambahan.
  • Anotasi penanda digunakan untuk menandakan secara meluas elemen program.
  • Pilihan bergantung pada konteks dan objektif pemarkahan.

Pelengkap
Antara muka penanda:
Image description

Atas ialah kandungan terperinci Item Gunakan antara muka penanda untuk menentukan jenis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan