javac seltsame Syntax - Fehler ungültiger Beginn des Ausdrucks

8

Ich bin auf einen seltsamen Fehler gestoßen, von dem ich glaube, dass er ein Fehler ist. Hier ist ein minimaler Fall, bitte kommentieren Sie nicht die Nützlichkeit des Codes:)

%Vor%

Ergebnis:

%Vor%

Ich habe versucht, SUN SDK javac 1.6.0_13 und 1.6.0_21.
Der Fehler verschwindet, wenn ich entweder

  • make bar () nicht-generisch (nur aus Neugier, nicht wirklich eine Option)
  • Entfernen Sie die Klammern um den ternären Ausdruck in Zeile 7

Es sieht also so aus, wenn e ein Ausdruck ist, ist es nicht immer gültig, (e) zu schreiben?

    
Ingo 23.03.2011, 11:48
quelle

4 Antworten

6

Der gepostete Code kompiliert (und läuft) für Eclipse einwandfrei, aber ich kann bestätigen, dass javac das nicht kompiliert. Ich vermute, Sie haben einen Compilerfehler in javac gefunden.

Es wäre wahrscheinlich eine gute Idee, dies zu melden .

    
Joachim Sauer 23.03.2011, 11:55
quelle
1

Ich habe es geschafft, es mit einer kleinen Änderung im Code zu kompilieren.So, ich vermute, dass es etwas mit konditionalen Operatorspezifikation zu tun hat (was ein wenig komplex ist) oder ein Bug.Aber dieses Problem tritt nur in bedingten Operator / p> %Vor%     

Prince John Wesley 23.03.2011 12:10
quelle
1

Der Bug ist schon 3 Jahre alt, wird aber anscheinend nicht in jdk 1.6 behoben. Allerdings ist es in jdk 1.7 Beta 14 behoben (die Entwicklervorschau ist b185, also ist es dort behoben, ich habe es ausprobiert).

    
Ingo 30.03.2011 16:39
quelle
-3

ist der Rückgabewert, den Sie nicht angeben müssen, indem Sie eine statische Methode aufrufen:

%Vor%     
sharpner 23.03.2011 11:54
quelle

Tags und Links