Rumah > Java > javaTutorial > teks badan

Item Gunakan antara muka penanda untuk menentukan jenis

PHPz
Lepaskan: 2024-07-17 09:02:20
asal
815 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!

sumber:dev.to
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!