den folgenden Java-Code-Schnipsel Nehmen:(Compiler) else if (true) vs anderes Szenario
....
else if (true){ //hard-coded as true
///launch methodA
}
else {
///launch methodA (same code as in the ` else if ` statement)
}
....
Was ich frage mich, wie die Compiler beschäftigt sich mit dieser. Wäre es nicht logisch für den Compiler, die else if(true)
-Anweisung vollständig zu entfernen, um keine Prüfung durchführen zu müssen, obwohl sie fest als wahr codiert ist. Wie wird der obige Code speziell in Eclipse interpretiert?
Oder was ist in dem folgende Szenario:
....
else if (true){ //hard-coded as true
///launch methodA
}
else {
///launch methodBB
}
....
Wäre es in diesem Fall nicht logisch sein, dass der Compiler die else
Anweisung zu entfernen? Denn während der Ausführung ist die else
-Anweisung nicht erreichbar.
Nur wundernd ... der logischste (oder zumindest der effizienteste) wäre der Compiler, nur die 'launch methodA' zu lassen, in beiden Fällen. – brlaranjeira
"Wäre es nicht logisch ..." Ja, und das tun die meisten modernen Compiler. –