2010-05-31 5 views
0

Possible en double:
What is the use of marker interfaces in Java?Que sont les interfaces de marqueur?

Quelles sont les interfaces marqueurs et pourquoi sont-ils utilisés?

+2

Si la question * n'a * pas été une question CW; il admet une seule réponse correcte. –

+0

Un bon exemple d'interface de marqueur est 'INamingContainer' dans ASP.NET. Il est utilisé pour créer un nouvel espace de noms dans la hiérarchie du contol et il en résulte l'identification que vous obtenez dans les pages ASP.NET (ou je devrais dire avant .NET 4) -http: //msdn.microsoft.com/fr us/library/system.web.ui.inamingcontainer.aspx –

+0

Sérialisable en Java à ... –

Répondre

0

Exemple d'utilisation en Java:

if (obj instanceof MarkerInterface) { 
    // do marker interface related stuff 
} 
+1

Cela n'explique pas vraiment le concept ... –

0

L'interface de marqueur fournit des fonctionnalités supplémentaires.

ils n'ont pas de corps. ce sont des inferfaces vides

6

Cela signifie une interface avec rien de plus qu'un nom. Aucune méthode pour vous d'implémenter. C'est une façon de classer votre classe dans une certaine catégorie simplement en indiquant que c'est dans la catégorie. Je l'ai vu utilisé pour les hiérarchies d'exception, mais je suis sûr qu'il existe d'autres applications.

+0

Je l'ai utilisé moi-même pour marquer des objets dont je garantis qu'ils auront un graphe d'objets acycliques. Cela est survenu lorsque j'écrivais des librairies de sérialisation et que j'étais trop paresseux pour effectuer une détection de cycle et un lissage. – jasonmp85

2

Une interface de marqueur que l'on appelle une interface Java qui ne servent à définir les champs. Il est juste utilisé pour "marquer" les classes Java qui supportent une certaine capacité - la classe se marque comme implémentant l'interface. Par exemple, l'interface java.lang.Cloneable.

Interface marqueur

Dans la programmation en langage Java, les interfaces sans méthodes sont appelées interfaces marqueurs. Les interfaces de marqueur sont Serializable, Clonable, SingleThreadModel, Event listener. Les interfaces de marqueurs sont implémentées par les classes ou leurs super classes afin d'ajouter certaines fonctionnalités.

par exemple. Supposons que vous souhaitiez conserver (sauvegarder) l'état d'un objet, alors vous devez implémenter l'interface Serializable sinon le compilateur va lancer une erreur. Pour mieux comprendre le concept d'interface de marqueur, vous devriez passer par un autre exemple. Supposons que l'interface Clonable ne soit pas implémentée par une classe nommée Myclass ni par une super classe, un appel à la méthode clone() sur l'objet Myclass donnera une erreur. Cela signifie, pour ajouter cette fonctionnalité, il faut implémenter l'interface Clonable. Bien que le Clonable soit une interface vide, il fournit une fonctionnalité importante.