Bedingte Compilierung

Status
Nicht offen für weitere Antworten.
A

Alex

Gast
Hallo Leute!

Da es in Java keinen Präprozessor gibt würde ich gerne wissen, ob sich bedingte Compilierung trotzdem irgendwie realisieren lässt.

Grüsse,
Alex
 

utnovetur

Mitglied
Ian F. Darwin empfiehlt in seinem "Java Cookbook" (O'Reilly) in Kapitel 1.10 folgende Methode:
Code:
final boolean DEBUG = false;
// ...
if (DEBUG) {
   System.err.println("Fehler aufgetreten");
}
 
B

bygones

Gast
naja, das hat ja dann eigentlich nichts mit dem bedingten Compilieren zu tun...

Aber ich glaube auch, dass es der einzige Weg ist, das in etwa zu simulieren, einen anderen gibt es nicht !
 

utnovetur

Mitglied
Ein wenig hat es schon mit bedingter Compilierung zu tun:
Da der bollean DEBUG "final" ist, kann sein Wert zur Laufzeit nicht mehr geändert werden.
Ein guter Compiler hat deshalb die Möglichkeit, den gesamten Code der if-Bedingung wegzuoptimieren.
Die if-Bedingung wird also nicht zur Laufzeit, sondern zur Compilezeit überprüft.
 

marsias

Aktives Mitglied
Hi!

Ja da hast du gar nicht so unrecht. klingt logisch.
Aber: macht das auch der Compiler?
Und so viele java compiler gibt es doch gar nicht oder?

Sun und IBM.
Wobei die IBM Java Compiler echt gut sein sollen. ---> speed

mfg
 

utnovetur

Mitglied
Ich habe es an einem kleinen Beispiel mit dem SUN-Compiler ausprobiert.
Dabei habe ich den Code erst kompilert und anschließend mit
javap -c Klassenname
wieder dekopiliert.
Der Kompiler optimiert es tatsächlich weg!
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben