Ho usato l'AOP di Guice per intercettare alcune chiamate di metodo. La mia classe implementa un'interfaccia e vorrei annotare i metodi dell'interfaccia in modo che Guice possa selezionare i metodi giusti. Anche se il tipo di annotazione è annotato con l' annotazione ereditata, la classe di implementazione non eredita l'annotazione come dichiarato nel documento java di Inherited:
Nota anche che questa meta-annotazione fa sì che le annotazioni vengano ereditate solo dalle superclassi; le annotazioni sulle interfacce implementate non hanno effetto.
Quale potrebbe essere la ragione di ciò? Conoscere tutte le interfacce che la classe di un oggetto implementa in runtime non è una cosa difficile da fare, quindi ci deve essere una buona ragione dietro questa decisione.