jpmorgan
Logo Sylphen
 
 

Java-Tipp 1: Collection-Klassen

Wenn Ihr die Collection-Klassen aus java.util verwendet, beachtet bitte folgendes:

  • Vector ist veraltet, bitte ArrayList benutzen, und statt Hashtable bitte HashMap benutzen
  • Überlegt, welche Anforderungen an die math. Mengeneigenschaften von zurückgelieferten Objekten bestehen
  • math. Menge: In der Schnittstelle Set übergeben, intern HashSet verwenden
  • math. Folge ohne Duplikate mit Reihenfolge: In der Schnittstelle SortedSet übergeben, intern TreeSet verwenden
  • math. Folge, die Duplikate erlaubt: In der Schnittstelle List übergeben, intern ArrayList verwenden.
  • ansonsten: In der Schnittstelle Collection übergeben, intern beliebige Implementierung verwenden.
  • Verwendet in Schnittstellen nicht etwa TreeSet, ArrayList oder HashMap, sondern das allgemeinere Interface Set, List, Map oder sogar Collection. Der Grund dafür ist, dass eine Schnittstelle immer besser ist, wenn allgemeine Typen verwendet wurden. Die Implementierung ist dann nicht an eine konkrete Klasse wie ArrayList gebunden und kann leicht geändert werden.
  • Collection-Objekte sollen ausschließlich gleichartige Objekte enthalten, also nicht an erster Stelle ein Integer, dann ein String, dann ein Document, File, etc. Falls Ihr sowas vorhabt, ist eigentlich eine eigene Klasse notwendig. Das liegt daran, dass jemand, der eine solche Collection erhält, genau wissen muss, was drin ist, damit die Typecasts funktionieren, die er ja durchführen muss, um an die Inhalte dran zu kommen. Da ist schlechter Programmierstil.

Ausblick

Mit den in Java 1.5 kommenden Generics (ähnlich den C++ Templates) werden Collections typsicher gemacht und dieses Typecast-Problem endlich behoben. Bis dahin hilft nur die Disziplin. Aber generell wird auch dann noch gelten, dass man in Collections nur gleichartige Objekte ablegt. Verstöße dagegen können dann bereits zur Compilierzeit erkannt werden.

Sylphen GmbH & Co. KG

Sylphen ist ein IT-Systemhaus mit Niederlassungen in Gießen, Frankfurt und Hamburg und unterstützt Sie durch Berater und Programmierer bei der effizienten Software-Entwicklung im Bereich Java, SQL und Integration. Unter 0641-94468-0 oder info@sylphen.com beraten wir Sie gerne unverbindlich.
zurück zu Customer-Solutions


Oracle
Cisco
google-adwords-professional

Partner Pixelbox