Comment écrire notre propre marqueur de l'interface en Java?
Je sais marqueur de l'interface en java. Il est utilisé pour définir un comportement spécifique à propos d'une classe. Par exemple, l'interface Serializable a la capacité de stocker un objet dans un flux d'octets et de ses processus inverse. Mais je ne sais pas où ce comportement est mis en œuvre, car il n'a pas de méthode.
- Comment la JVM d'appeler ce comportement spécifique?
- Comment écrire notre propre interface marqueur? Pouvez-vous me donner un simple défini par l'utilisateur interface marqueur pour ma compréhension?
- Est-il possible d'avoir des méthodes dans l'interface marqueur?
Merci de me guider pour résoudre ce problème.
Pourquoi voulez-vous écrire interface marqueur? Il est un peu obsolète chose. Utiliser annotations.... de toute façon, à quoi voulez-vous utiliser votre propre "marqueur"d'interface
De Cirkel - Son certainement pas Obsolète, d'Abord et avant tout, un marqueur des interfaces de définir un type qui est mis en œuvre par les instances de la classe marquée; marqueur annotations ne le font pas. Lire Efficace java 2nd edition Article 37 pour plus de détails.
De Cirkel - Son certainement pas Obsolète, d'Abord et avant tout, un marqueur des interfaces de définir un type qui est mis en œuvre par les instances de la classe marquée; marqueur annotations ne le font pas. Lire Efficace java 2nd edition Article 37 pour plus de détails.
OriginalL'auteur Saravanan | 2012-06-13
Vous devez vous connecter pour publier un commentaire.
La sérialisation est géré par le
ObjectInputStream
etObjectOutputStream
classes. Si une classe spéciale de sérialisation besoins, les méthodes pour créer, sont décrites dans le API. La réflexion est utilisé pour appeler ces méthodes.De la même manière que vous le feriez écrire toute autre interface.
Il n'y a rien qui vous empêche de mettre les méthodes d'une interface marqueur.
La pratique plus courante est maintenant à utiliser les annotations de fournir le même marqueur de métadonnées interfaces fournissent.
Aller à la source des classes au lieu de demander lignes exactes!!
Le JDK est open source.
ObjectInputStream
.ObjectOutputStream
.@Premraj,jeffrey:merci...
belle réponse 🙂 mais +1 pour le commentaire
The JDK is open source
😉 :pOriginalL'auteur Jeffrey
ObjectOutputStream
etObjectInputStream
va vérifier votre classe si oui ou non il implementesSerializable
,Externalizable
. Si oui, il va continuer ou bien sera jetéNonSerializableException
.Créer une interface sans méthode et c'est votre interface marqueur.
Échantillon
Si toute classe qui implémente cette interface sera pris comme base de données de l'entité par votre application.
Exemple De Code:
L'idée de Interface Marqueur De Modèle est de fournir un moyen de dire "oui je le suis quelque chose" et le système va continuer avec le processus par défaut, comme lorsque vous marquez votre classe comme Serialzable il dit juste que cette classe peut être converti octets.
belle explication 🙂
OriginalL'auteur mprabhat
Oui, Nous pouvons créer notre propre interface Marqueur..Voir la suite...
OriginalL'auteur Vijay Bhatt
Comme l'explique très bien dans l'article de Wikipédia Interface marqueur de modèle, un marqueur de l'interface est une forme de métadonnées. Le code Client peut tester si un objet est une instance de l'interface marqueur, et d'adapter son (le client) le comportement en conséquence. Voici un marqueur de l'interface:
Le code peut tester si un objet est un
CoolObject
et en faire quelque chose:La
Serializable
interface est définie comme la partie du langage Java. Vous ne pouvez pas mettre en œuvre le comportement à ce niveau vous-même.Vous pouvez ajouter des méthodes à une interface marqueur, mais qui mixe le marqueur de modèle avec d'autres conceptuel utilise pour les interfaces et peut être source de confusion. (C'est une classe implémentant l'interface pour les fins de marquage, ou de son comportement, ou les deux?)
Comme expliqué dans l'article de Wikipedia, marqueur des interfaces en Java peut (et devrait) être remplacé par les annotations.
OriginalL'auteur Ted Hopp
Interface marqueur n'a pas de méthode. Java a intégré dans l'interface marqueur comme
Serializable
,Clonable
&EventListner
, etc qui sont à comprendre par la JVM.Nous pouvons créer notre propre interface marqueur, mais il n'a rien à voir avec la JVM, nous pouvons ajouter quelques vérifications avec
instanceOf
.Créer l'interface vide
Écrire une classe et implémente l'interface
Main
classe pour vérifier l'interface marqueurinstanceof
OriginalL'auteur Panky031
Autant que je sache marqueur interfaces obtenir leur comportement par "utilitaire" des classes. Par exemple, si vous avez lu le livre "Design Patterns" par la bande des Quatre, vous avez le comportement d'une classe marqués avec un marqueur de l'interface définie dans une autre classe.
Par exemple vous avez une interface marqueur "Saveable". Vous avez un processus qui traverse toutes les classes qui implémentent cette interface (par réflexion) et effectue ensuite l'opération d'enregistrement.
OriginalL'auteur matcauthon