Verwende Enum anstatt int Konstanten

Vor Java 1.5 gab es noch keine enum Typen, deshalb wurden Konstanten wie folgt verwendet:


public static final int LECKER_MARZIPAN = 0;
public static final int LECKER_KUCHEN =1;
public static final int LECKER_EIS = 2;

public static final int PFLANZE_BIRKE = 0;
public static final int PFLANZE_EICHE = 1;
public static final int PFLANZE_KAKTUS = 2;

Das geht jetzt besser „Verwende Enum anstatt int Konstanten“ weiterlesen

Integer Caching

Schau Dir mal diesen Code an. Was erwartest Du bei dem 3. Vergleich?


public class Test {

public static void main(String[] args) {

Integer wertGleich = 100;
Integer wertAuchGleich = 100;

// Referenzvergleich: Test 1
System.out.println(wertGleich == wertAuchGleich); // ergibt true

// gleicher Test nur mit anderen Wert
Integer wertGleichZwei = 122;
Integer wertAuchGleichZwei = 122;

// Referenzvergleich: Test 2 auch
System.out.println(wertGleichZwei == wertAuchGleichZwei); // ergibt true

// Dreimal ist Bremer Recht: Test 3: Gleicher Test nur mit anderen Wert
Integer wertUngleich = 150;
Integer wertAuchUngleich = 150;

// Was erwartest Du? „Integer Caching“ weiterlesen

Exceptions nur für Ausnahmen verwenden

Exceptions sollen immer nur für Ausnahmen und nicht für den normalen Programmablauf verwendet werden.

Also ist dies ein NO GO:

try{
int i =0;
while (true){
range[i].climb();
}catch(ArrayIndexOutOfBoundsException e){
}

Bei eine Endlosschleife die mit einer ArrayIndexOutOfBoundsException abbricht wird der Programmablauf über die Exception gesteuert. Das ist falsch.

Also Exceptions nur für Ausnahmen verwenden.

Aufgabe: Wie könnte es richtig gemacht werden?

(see Joshua Bloch Item 57)

Keine unbehandelten Exception

Gefangene Exception müssen immer behandelt werden. Das ist der Sinn von Ausnahmen.

Ein ignorieren der Exception ist so wie das ausschalten eines Brandmelders. Wenn es brennt nützt der dann auch nichts mehr.

So auch die Exception die gefangen werden.
Sie sollen ja ein Ausnahme sein, die auch dem entsprechend behandelt werden soll.


try
{
// ...
}catch(IrgendeineException e)
{
// in Ausnahmefällen kann hier ein Kommentar stehen,
// warum nichts gemacht wird
// aber kein Kommentar und nur ein leerer catch block
// ist ein NO GO!
}

(see Joshua Bloch Item 65)

Brotkrümelnavigation (breadcrumb) mit Eclipse

In Eclipse 3.4 gibt es nun endlich die Brotkrümelnavigation.

Ldt Wikipedia ist die Brotkrümel- oder Brotkrumennavigation (engl. breadcrumb navigation) ein Entwurfsmuster für die Gestaltung grafischer Benutzeroberflächen.

Bei breadcrumbs handelt es sich um Navigationselemente, die den Pfad zum aktuellen Element (Webseiten, Kategorie in Katalog, usw.) zeigen. Brotkrumennavigationen sollen die Orientierung innerhalb tief verzweigter Elementbäume (etwa Websites, Dateisystem, Katalogen usw.) verbessern, indem sie Links zu vorher besuchten, übergeordneten oder themenverwandten Elementen anbieten. „Brotkrümelnavigation (breadcrumb) mit Eclipse“ weiterlesen

Verhindern von Null Pointern

Eclipse 3.4 bietet die Möglichkeit häufige Programmierfehler zu markieren.

Zum Beispiel gibt es eine Null Pointer Zugriffswarnung. Mögliche Einstellungen sind unter dem Menüpunkt: Window – Preferences – Java – Compiler – Errors Warnings zu finden.

In diesem Dialog können sie geändert werden.

Die default Einstellung ist auf warnung. Um solche Null-Pointer-Probleme schon zur Compilezeit zu finden ist es hilfreich den Level auf error zu setzen.