2016-02-17 15 views
7

Ho una domanda per quanto riguarda "Interfacce" in Java e la questione suona così:Cosa posso vincere quando implemento un'interfaccia vuota?

Qual è l'uso di implementare un'interfaccia in bianco (vuoto) nella mia classe?

Al fine di ottenere una migliore comprensione della questione, io vi darà un esempio concreto:

Se si va a vedere l'attuazione di "ArrayList" di classe, troverete che implementa due interfacce (RandomAccess e Cloneable), che sono in realtà totalmente vuote!

Perché sta succedendo? Cosa posso vincere implementando un'interfaccia completamente vuota per la mia classe?

In caso di idee, si prega di lasciare un commento.

Grazie in anticipo.

risposta

7

Queste interfacce sono chiamati come interfacce Marker (utilizzato per contrassegnare la classe di quel tipo) e in fase di esecuzione vengono utilizzati per verificare il tipo.

Per ex

Durante l'esecuzione del programma, logica interna può va come

if (yourList instanceof Cloneable) { 
     // Hey this object is of type Clonable, please proceed 
    } else { 
     // Not that type. Reject 
    } 
+2

'ObjectOutputStream' ha questo tipo di verifica per' Serializable' (interfaccia marker) +1 – TheLostMind

+0

@SURESHATTA: Grazie molte per la risposta. Non ho mai sentito il termine "Marker Interface" e quella era in realtà la chiave. Sono stato di grande aiuto. – Origamer7

1

quelle interfacce servono solo per i diversi e identificare casi, considerare questo:

interface MyInterface1 {} 
interface MyInterface2 {} 

Il consumo di codice:

if (foo is MyInterface1) ... 
Problemi correlati