Inherit-Methode mit nicht verwandten Rückgabearten
-
13-12-2019 - |
Frage
Ich habe den folgenden Code-Snippet
generasacodicetagpre.Wenn ich versuche, es zu kompilieren, habe ich Fehler erhalten.
generasacodicetagpre.
Wie vermeide ich das?
Lösung
Wie erörtert in Java - Methode Namenskollision in der Schnittstellenimplementierung Sie können das nicht tun.
Als Problemumgehung können Sie eine Adapterklasse erstellen.
Andere Tipps
Es gibt nur einen Fall, in dem dies funktionieren würde, der von xamde erwähnt wird, aber nicht gründlich erklärt.Es ist mit kovariante Retourenarten .
In der JDK 5 gibt die kovariantigen Renditen, wo hinzugefügt, und als solcher ist der folgende ein gültiger Fall, der ohne Probleme fein kompiliert und ausgeführt wird.
generasacodicetagpre.Daher wird das Folgende ohne Fehler ausgeführt und "C" an den Hauptausgang drucken:
generasacodicetagpre.Dies funktioniert, weil String ein Subtyp der Charsequenz ist.
Dies ist ein Fehler in Sun's Java 6-Compiler .
Ich hatte das gleiche Problem und es scheint in Ordnung zu sein, indem er den JDK 7 von Oracle benutzt.