Étiqueter l'interface dans Java Explication détaillée: Mécanisme de données de métadonnées légères
L'interface
Mark dans Java est une interface qui n'inclut aucune méthode ou champ. Il est utilisé pour ajouter des métadonnées spécifiques à la classe afin que le Java ou d'autres cadres puissent être identifiés et traités. Bien qu'il semble insignifiant car il ne définit aucun comportement, son importance est de savoir comment il raconte comment JVM ou une bibliothèque externe gère les classes de balises de différentes manières.
Certaines interfaces de balise couramment utilisées dans Java incluent, Serializable
et Cloneable
. Remote
<code class="language-java">// 标记接口示例 public interface MyMarkerInterface { // 此处未定义任何方法或字段 }</code>
<code class="language-java">public class MyClass implements MyMarkerInterface { // 此类现在用MyMarkerInterface标记 }</code>
1.2 Les fonctionnalités puissantes de l'interface de marquage
Par exemple, pour , la machine virtuelle Java (JVM) gérera les objets de la classe de cette interface de différentes manières, ce qui leur permet d'être sérialisé en flux d'octets. S'il n'y a pas , si vous essayez l'objet séquentialisation, JVM lancera
. Serializable
Serializable
NotSerializableException
2. Principe de travail de Java de l'interface de soumission
2.1 Étude de cas:
Interface de baliseSerializable
Serializable
Serializable
Dans le code ci-dessus, la classe
<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>
L'interface de marquage ne définit aucune méthode, mais le JVM explique que son existence soit sérialisée en permettant aux objets. C'est ainsi que l'interface de marquage réalise des fonctions importantes grâce à la conception mineure. Employee
Bien que Java fournit des interfaces de marquage construites, vous pouvez également créer une interface de marque personnalisée dans vos propres applications. L'interface d'étiquette personnalisée peut être utilisée pour envoyer un signal de traitement spécial à certaines classes dans l'application ou le cadre.
En supposant que vous souhaitez construire un système, seule la classe qui implémente l'interface de marqueur personnalisée peut effectuer certains traitements spécifiques. Vous pouvez créer une interface de balise et utiliser des réflexes pour gérer les classes de ces balises de différentes manières:
<code class="language-java">// 标记接口示例 public interface MyMarkerInterface { // 此处未定义任何方法或字段 }</code>
Lorsque vous avez besoin d'un mécanisme léger pour classer certains objets, l'interface de marques personnalisées sera utile. Il n'est pas nécessaire d'ajouter des méthodes supplémentaires ou une logique complexe, il suffit de marquer la classe, la présence de la marque peut déclencher un traitement spécial. Cela maintient votre code simple et maintenable, tout en utilisant le système de type Java pour améliorer la flexibilité.
Depuis Java 5, l'annotation est devenue une alternative populaire à l'interface de marquage. Alors pourquoi choisissez-vous une interface de balise au lieu de l'annotation?
4.1 Quand utiliser l'interface de marque
Par exemple, l'utilisation de l'interface de balise vous permet d'utiliser le type de vérification
ou de forcer l'objet au type d'interface de marquage. Cela permet des examens de type de compilation solides et permet aux outils et des cadres de gérer ces types en conséquence. instanceof
Par exemple, vous pouvez commenter des méthodes ou des champs pour rendre les annotations plus courantes dans de nombreux scénarios. Cependant, ils n'ont pas la capacité de définir de nouveaux types comme le marquage des interfaces.
5. Conclusion Bien que l'interface de marque semble simple, elle offre beaucoup de valeur par la classification des objets qui peuvent expliquer le comportement spécifique en expliquant le comportement spécifique. Que vous utilisiez l'interface de marquage construite de Java (telle que
Dans le monde d'aujourd'hui, les annotations ont grandement remplacé l'interface de marquage, mais il est toujours important de comprendre quand et comment utiliser l'interface de balise pour écrire un code Java plus clair et plus robuste. Serializable
Les faits sur l'interface de bid Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!