Hat Java erkennen Endlosschleifen?

Angesichts des folgenden code-Beispiel:

public class WeirdStuff {

    public static int doSomething() {
        while(true);
    }

    public static void main(String[] args) {
        doSomething();
    }
}

Dies ist eine gültige Java-Programm, obwohl die Methode doSomething() sollte int zurückgeben, aber es nie tut. Wenn Sie es ausführen, wird es am Ende in einer Endlosschleife. Wenn man das argument der while-Schleife in eine separate variable (z.B. boolean bool = true) der compiler wird Ihnen sagen, int zurückgeben, die in dieser Methode.

Also meine Frage ist: ist diese irgendwo in der Java-Spezifikation und gibt es situation, wo dieses Verhalten nützlich sein?

  • Würden Sie nicht brauchen eine return 0; (oder gleichwertig) nach while(true);, einfach, um den compiler glücklich? Ich weiß, ich habe Java-Sie beschweren sich, dass Methoden nicht wieder den richtigen Typ vor. ... , Dass gesagt wird, ich kann Total sehen, dass ein Programm kompilieren.
  • Sehr interessant... ich war überrascht, dass es tatsächlich kompiliert.
InformationsquelleAutor leifg | 2009-12-24
Schreibe einen Kommentar