0
votes

Pouvons-nous appliquer @Functionalinterface Annotation aux classes abstraites en Java?

Je sais que cela peut être appliqué sur interface mais comme interfaces avec des méthodes par défaut (interfaces Java 8+) sont très proches maintenant aux classes abstraites, il suffit de vous demander maintenant pouvons-nous utiliser @funconalinterface avec Classes abstraites ?

sinon pourquoi nous ne pouvons pas?


4 commentaires

L'avez-vous essayé?


Comme apparaissent son nom, il utilise juste pour les interfaces. et vous pouvez le tester.


Dupliqué possible de Qu'est-ce qui utilise l'interface fonctionnelle dans Java 8? < / a>


Non, fi était uniquement créé pour faciliter la Lambdas.


3 Réponses :


4
votes

Vous ne pouvez pas appliquer @functionalinterface à la classe abstraite, enum ou une autre annotation. De Java Doc :

Si un type est annoté avec ce type d'annotation, des compilateurs sont tenus de générer un message d'erreur à moins que:


2 commentaires

Une raison pour laquelle nous ne pouvons pas?


@Prajazz voir ici pour plus de détails Stackoverflow.com/questions/ 24610207 / ...



1
votes

Comme le nom l'indique, il doit être utilisé pour les interfaces. L'appliquer aux résultats des classes ci-dessous:

Erreur: (10, 1) Java: Inattendue @FunctionLinterface Annotation xxx n'est pas une interface fonctionnelle

Mais cela n'a pas beaucoup de problème, car il s'agit simplement d'une interface de marqueur pour les interfaces avec une méthode.


0 commentaires

-2
votes

L'interface fonctionnelle est là pour le but spécifique - Il est utilisé avec des interfaces uniquement qui ont strictement une seule et unique méthode abstraite. Sinon, le compilateur se plaint - xxx

Eclipse affichant une erreur

et il n'y a aucun point à l'utiliser avec une autre classe, Enum Stuffs


0 commentaires