Rumah >Java >javaTutorial >Fakta mengenai antara muka penanda di java
antara muka label dalam Java Penjelasan terperinci: Mekanisme data metadata ringan
tanda antara muka dalam java adalah antara muka yang tidak termasuk sebarang kaedah atau medan. Ia digunakan untuk menambah metadata tertentu ke kelas supaya Java atau rangka kerja lain dapat dikenalpasti dan diproses. Walaupun ia kelihatan tidak penting kerana ia tidak menentukan apa -apa tingkah laku, kepentingannya adalah bagaimana ia menceritakan bagaimana JVM atau perpustakaan luaran mengendalikan kelas tag dengan cara yang berbeza.
Beberapa antara muka tag yang biasa digunakan dalam Java termasuk, Serializable
dan Cloneable
. Remote
<code class="language-java">// 标记接口示例 public interface MyMarkerInterface { // 此处未定义任何方法或字段 }</code>Seperti yang anda lihat, tiada kaedah atau medan dalam antara muka. Sekarang, mari kita lihat cara menggunakan antara muka ini untuk menandakan kelas.
<code class="language-java">public class MyClass implements MyMarkerInterface { // 此类现在用MyMarkerInterface标记 }</code>ini kelihatan mudah. Tetapi apa tujuannya? Mengapa kelas menyedari antara muka kosong?
1.2 Ciri -ciri kuat antara muka penanda
Sebagai contoh, untuk , mesin maya Java (JVM) akan mengendalikan objek kelas antara muka ini dengan cara yang berbeza, membolehkan mereka bersiri ke dalam aliran byte. Jika tidak ada , jika anda mencuba objek pengurutan, JVM akan membuang
. Serializable
Serializable
NotSerializableException
2. Prinsip kerja Java antara muka tawaran
2.1 Kajian Kes:
Interface TagSerializable
Serializable
Serializable
Dalam kod di atas, kelas
<code class="language-java">import java.io.*; class Employee implements Serializable { private String name; private int id; public Employee(String name, int id) { this.name = name; this.id = id; } @Override public String toString() { return "Employee{" + "name='" + name + '\'' + ", id=" + id + '}'; } public static void main(String[] args) throws IOException, ClassNotFoundException { Employee emp = new Employee("John Doe", 123); // 序列化 FileOutputStream fos = new FileOutputStream("employee.ser"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(emp); oos.close(); fos.close(); // 反序列化 FileInputStream fis = new FileInputStream("employee.ser"); ObjectInputStream ois = new ObjectInputStream(fis); Employee emp2 = (Employee) ois.readObject(); ois.close(); fis.close(); System.out.println(emp2); } }</code>. Apabila kita bersiri contoh , ia ditukar menjadi aliran byte dan disimpan ke fail (pekerja.ser). Kemudian, kita boleh mengembalikannya ke objek
Antara muka penanda tidak menentukan sebarang kaedah, tetapi JVM menerangkan kewujudannya untuk bersiri dengan membenarkan objek. Ini adalah bagaimana antara muka penandaan menyedari fungsi penting melalui reka bentuk kecil. Employee
Walaupun Java menyediakan beberapa antara muka yang ditandakan, anda juga boleh membuat antara muka tanda tersuai dalam aplikasi anda sendiri. Antara muka label tersuai boleh digunakan untuk menghantar isyarat pemprosesan khas kepada beberapa kelas dalam aplikasi atau kerangka.
Dengan mengandaikan anda ingin membina sistem, hanya kelas yang melaksanakan antara muka penanda tersuai dapat melakukan rawatan khusus tertentu. Anda boleh membuat antara muka tag dan menggunakan refleks untuk mengendalikan kelas tag ini dengan cara yang berbeza:
<code class="language-java">// 标记接口示例 public interface MyMarkerInterface { // 此处未定义任何方法或字段 }</code>
Apabila anda memerlukan mekanisme ringan untuk mengklasifikasikan objek tertentu, antara muka tanda tersuai akan berguna. Tidak perlu menambah kaedah tambahan atau logik kompleks, hanya menandakan kelas, kehadiran tanda boleh mencetuskan rawatan khas. Ini menjadikan kod anda mudah dan dapat dipelihara, sambil menggunakan sistem jenis Java untuk meningkatkan fleksibiliti.
Sejak Java 5, anotasi telah menjadi alternatif yang popular kepada antara muka penandaan. Jadi mengapa anda memilih antara muka tag dan bukannya anotasi?
4.1 Bila menggunakan antara muka tanda
Sebagai contoh, menggunakan antara muka tag membolehkan anda menggunakan jenis semak
atau untuk memaksa objek ke jenis antara muka tanda. Ini membolehkan peperiksaan jenis kompilasi yang kuat dan membolehkan alat dan kerangka untuk mengendalikan jenis ini dengan sewajarnya. instanceof
5. Kesimpulan Walaupun antara muka tanda kelihatan mudah, ia memberikan banyak nilai dengan klasifikasi objek yang dapat menjelaskan tingkah laku khusus dengan menjelaskan tingkah laku tertentu. Sama ada anda menggunakan antara muka penandaan Java yang dibina (seperti
) atau membuat tanda tersuai anda sendiri, antara muka ini menyediakan penyelesaian yang mudah dan boleh dipelihara untuk menambah data metadata tersembunyi ke kelas.
Baca lebih banyak artikel: Serializable
Fakta mengenai antara muka tawaran Java
Atas ialah kandungan terperinci Fakta mengenai antara muka penanda di java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!