Unbenannte Codeblöcke

Runtime

Top Contributor
Hallo Leute,

ich programmiere jetzt schon 1.5 Jahre Java und habe nicht gewusst, dass das geht!
Java:
package die.welt.ist.so.grausam;

public class DieWeltIstSoGrausam {

    {
        //unbenannter Codeblock?
        //Was soll der bringen?
    }

}

Warum kann man solche Codeblöcke machen?
Wann werden sie ausgeführt?
 

diel2001

Bekanntes Mitglied
Beim instanziieren einer Objects wird der Block ausgeführt.
Es gibt aber auch noch den statischen Block,
der wird beim ersten Laden der Klasse ausgeführt

Java:
static {

}
 

Runtime

Top Contributor
Ok, danke Jungs. Ich sollte öfter einfach mal Threas ins Anfängeforum stellen, da bekommt man viel schneller Antworten :D.
 

Der Müde Joe

Top Contributor
>dass das geht!

Java:
for (int x = 0; x < 10; x++) {
    http: //www.java-forum.org
    for (int i = 0; i < 5; i++) {
        System.out.println("Peng" + i);
        if (i == 2) {
            break http;
        }
    }
}

;-)
 

Landei

Top Contributor
Nochmal zurück zu den Initialisierungsblöcken. Hier einmal ein mehr oder weniger nützlicher Anwendungsfall:
Java:
class Test {
   public List<String> list = new ArrayList(){{
        add("Das"); add("ist"); add("so"); add("cool!");
   }}
}
Man sieht jedenfalls, dass die Initialisierung über eine anonyme Klass mit überschriebenen Konstruktor komplizierter würde.

Eine andere Anwendung ist, wenn man viele Konstruktoren hat, und immer eine bestimmte Initialisierung durchführen muss, während sich der Rest jeweils stark unterscheidet. Wenn man die gemeinsame Initialisierung in einen Init-Block packt, kann man sie nicht versehentlich vergessen, selbst wenn neue Konstruktoren dazukommen.
 

Runtime

Top Contributor
Anonyme Klassen sind ja auch nicht grad die beste Wahl und wenn man so etwas wollte hätte man ein 'with' wie in Javascript in die Sprache eingebaut.
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben