warum for loop akzeptiert booleschen Wert nicht direkt?

7

Übersetzungsfehler: Die linke Seite einer Zuweisung muss eine Variable sein

%Vor%

aber wenn ich diesen Weg versucht habe, gibt es keinen Kompilierungsfehler

%Vor%

getBoolean () gibt einen booleschen Wert zurück, also für den ersten Fall, warum die for-Schleife keinen booleschen Wert direkt akzeptiert?

    
zombie 02.03.2015, 05:37
quelle

2 Antworten

14

Aus JLS :

%Vor%

Dann :

%Vor%

Wie Sie sehen können, ist Method Invocation erlaubt und literal value nicht.

    
PM 77-1 02.03.2015, 05:55
quelle
4

Laut doc

%Vor%

Und Initialisierung und Inkrement muss der Ausdruck (Zuweisung) nicht einfach boolesch sein, aber in Java wird der Funktionsaufruf als Ausdruck betrachtet, so dass er korrekt ausgewertet wird.

    
squiroid 02.03.2015 05:48
quelle

Tags und Links