2017-05-14 1 views
0

Ich sehe, dass @Interface verwendet wird, um eine Anmerkung zu deklarieren. Kann @Interface verwendet werden, um auch etwas anderes als eine Anmerkung zu deklarieren?Kann es Java-Schnittstellen geben, die keine Anmerkungen sind?

Wenn nicht, warum nicht einfach @Annotation oder so etwas nennen?

+1

Sie meinen wie das normale ol '' interface' Schlüsselwort, das wir seit über 20 Jahren verwenden? https://docs.oracle.com/javase/tutorial/java/concepts/interface.html – markspace

+0

Wir nennen es nicht "nur @Annotation oder etwas", weil das die Java Language Specification (JLS) verletzen würde. –

Antwort

0

Kann es Java-Schnittstellen geben, die keine Anmerkungen sind?

Ja, regelmäßige interface s:

public interface MyInterface {...} 

@interface Kann etwas anderes als eine Anmerkung zu erklären, auch verwendet werden?

Nein, @interface definiert eine Anmerkung. Und seien Sie vorsichtig mit dem Briefkasten - es ist Smallcase @interface, nicht @Interface.

Warum nicht einfach @Annotation oder so etwas nennen?

Da Annotationen eine Art Schnittstelle sind, finden Sie in der answer ich auf Ihre andere Frage gab,

Eine Annotationstyp Erklärung gibt eine neue Annotationstyp, eine besondere Art der Schnittstelle Art.

(fett Betonung von mir) und aus den tutorial:

Annotation-Typen sind eine Form von Schnittstelle

0

Ich sehe, dass @Interface verwendet wird, eine erklären Anmerkung.

Eigentlich ist es @interface und die Unterscheidung ist wichtig; siehe your other Question.

Wenn nicht, warum nicht einfach @Annotation oder so etwas nennen?

  1. Weil sie dies nicht taten.

  2. Da Annotation würde die Stilregeln verstoßen (als Bezeichner)

  3. Da annotation nicht als Schlüsselwort reserviert wurde. Wenn man es in ein Schlüsselwort umwandelt, würde möglicherweise viel existierender Java-Code für den Kunden nicht kompilierbar.

    (Das ist, was sie mit enum taten und es verursachte Probleme für einige Menschen. Es würde dazu führen, mehr Probleme in diesem Fall ..., weil die Menge des vorhandenen Legacy-Java-Code in den letzten ~ 15 Jahren gewachsen.)


im Ernst, es wenig Sinn, Fragen der Form der Frage „warum haben sie Java den Weg nicht entwerfen, dass ich es getan hätte?“. Sie werden Ihnen nicht wirklich dabei helfen, Ihre Arbeit zu erledigen ... es sei denn, Ihre Aufgabe ist es, Programmiersprachen zu entwickeln. Und wenn ja, dann haben Sie wahrscheinlich schon verstanden, dass es unmöglich ist, widersprüchliche PL-Design-Anforderungen so zu lösen, dass alle zufrieden gestellt werden.

Verwandte Themen