Ho usato annotazioni in Java o un po 'come utente finale ma di recente ho deciso di cercare i miei tipi di annotazione personali e trovo la sintassi per la definizione di annotazioni in Java con @interface molto strana. La mia domanda è: perché Java usa @interface per definire le annotazioni invece di introdurre una nuova parola chiave come hanno fatto per l'enumerazione? C'è qualche vantaggio della sintassi @interface che mi manca?Perché @interface viene utilizzato per definire le annotazioni?
Mi sto connettendo all'idea di introdurre una nuova parola chiave per definire le annotazioni.
@interface ha troppe restrizioni, ad esempio non è possibile utilizzare ext, ci sono tipi specifici che non è possibile utilizzare quando si definisce un membro di annotazione come Date. Trovo che le restrizioni su cosa possa essere inserito in @interface non siano ovvie e mi sembra una sorta di compromesso.
Puoi per favore approfondire cosa intendi @ non è una parola chiave il compilatore lo tratta in un modo speciale mentre la specifica dice che puoi definire il tipo di annotazione con qualcosa come "@interfaccia" con spazi tra l'interfaccia @ per me mi sembra una parola chiave vedere la mia domanda aggiornata come "perché no" non è l'unica risposta disponibile – ams
@ams mi scuso, ho controllato la grammatica Java, è davvero una parola chiave quindi ho completamente rivisto la mia risposta. – EJP