2010-12-20 8 views
1
@Override 
public Class< ? extends Page> getHomePage() { 
      return HomePage.class; 
} 


public Class<HomePage> getHomePage(){ 
     return HomePage.class; 
} 

Der erste hat eine Anmerkung Override. Was bedeutet das oder was sendet es an das Framework.Was bedeutet "@Override" und "<? Extends Page>"?

Geben beide Methoden die gleiche Klasse zurück. Ich meine was bedeutet das ? extends Page. Ich meine das? Kennzeichen.

Antwort

1

1) Override Annotation

Javadoc-: Gibt an, dass ein Verfahren Erklärung soll ein Verfahren Deklaration in einer Oberklasse zu überschreiben. Wenn eine Methode mit diesem Annotationstyp kommentiert wird, eine Superklassenmethode jedoch nicht überschrieben wird, müssen Compiler eine Fehlermeldung generieren.

2)? bedeutet irgendwas. zum Beispiel: <? > bedeutet, dass jeder Java-Datentyp hier sein kann

<? extends Page> bedeutet, dass eine Unterklasse von Page hier erlaubt ist.

2
+0

Es wäre besser gewesen, einige Informationen direkt zusammen mit dem Link zur Verfügung zu stellen. – Benjol

+1

Wie zum Beispiel RTFM? – OrangeDog

2

@Override -

die @Override Annotation informiert den Compiler, der das Element gemeint ist, ein Element in einer übergeordneten Klasse deklarierte außer Kraft zu setzen (Überschreiben von Methoden werden in der „Schnittstellen betitelten Lektion diskutiert und Vererbung ").

Auch

+1

Erweitern Sie dies ein wenig, es wird Ihnen einen sauberen unterstrichenen Fehler in IDEs geben, der anzeigt, dass Sie eine Methode in einer Oberklasse oder Schnittstelle nicht überschreiben (oder implementieren). Dies hilft zum Beispiel bei Tippfehlern (Schreiben einer Methode 'getHomPage()', die keine Fehlermeldungen liefert, nur ein seltsames Verhalten, da Ihre eigene getHomePage() -Methode nicht ausgeführt wird). – fwielstra

+0

@Cthulhu IDE ruft diese Information nur vom Compiler ab, und dies ist die wahre Verwendung von '@ Override', überprüfen Sie die aktualisierte Antwort –

2

Und die zweite Frage Siehe: a wildcard.

Beide Methoden werden das gleiche Objekt zurück (die Class Instanz HomePage darstellt), aber sie sind auf verschiedene Weise erklärt, so dass der Wild gekrempelt Version von Methoden verwendet werden, die kümmern sich nicht, welche Art von Page Sie haben, solange es eine Unterklasse von Page ist.