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
}
Kompilasi Semakan Masa:
- Penggunaan antara muka penanda membolehkan ralat dikesan semasa penyusunan.
Contoh dengan Serializable:
ObjectOutputStream.writeObject(myObject); // Garante que myObject seja Serializable
Ketepatan Penandaan:
- Antara muka penanda boleh digunakan dengan tepat pada subjenis tertentu.
Contoh:
public interface MyMarkerInterface extends MySpecificInterface {
// Sem métodos adicionais
}
Contoh Penggunaan
Boleh bersiri:
- Menunjukkan bahawa kelas boleh bersiri.
Contoh:
public class Person implements Serializable {
private String name;
private int age;
// Getters, setters, etc.
}
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
}
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
}
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
public interface MyTypeMarker {
}
public class MyClass implements MyTypeMarker {
// Implementação
}
public void process(MyTypeMarker obj) {
// Processa apenas objetos marcados com MyTypeMarker
}
Nota Penanda Halaman:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnotationMarker {
}
@MyAnnotationMarker
public class MyClass {
// Implementação
}
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:
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: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