Bisher wurden die beiden wichtigsten Methoden vorgestellt, die man für die Arbeit mit Java-Klassen in Coldfusion braucht: createObject() und init(). Es gibt noch eine weitere Methode, die man gelegentlich benötigen wird: javaCast().
Wie die meisten Scriptsprachen verfügt auch Coldfusion nur über wenige Datentypen. So gibt es in Coldfusion nur einen einzigen Typ für die Arbeit mit Zahlen, wohingegen Java dem Entwickler eine ganze Reihe von Zahlentypen zur Auswahl bereitstellt.
Hinzu kommt die Tatsache, dass Java-Entwickler mehr als eine Methode gleichen Namens innerhalb derselben Klasse spezifizieren dürfen – ein Java-Feature namens „Methodenüberladung“ (method overload). Es ist möglich, ja sogar gängig, dass diese überladenen Methoden dieselbe Anzahl von Argumenten haben, diese aber unterschiedlichen Typs sind. Listing D zeigt eine Java-Klasse, welche über zwei Methoden namens getCommission() verfügt. Eine dieser Methoden erwartet eine Zahl vom Typ int, die andere eine vom Typ double.
Listing D
Damit ergibt sich folgendes Problem: Coldfusion unterscheidet nicht zwischen int oder double, da es für alle Zahlen nur über einen einzigen Typ verfügt. Die folgende Codezeile nimmt an, dass man bereits createObject() verwendet hat, und ist ein inkorrekter Versuch, eine der getCommission()-Methoden aus Listing D aufzurufen:
Welche der beiden getCommission()-Methoden wird Coldfusion aufrufen? Leider wird Coldfusion keine der beiden Methoden aufrufen, sondern stattdessen einen „Method not found“- oder „Method selection“-Fehler melden. Für Coldfusion sehen beide Methoden identisch aus, daher gibt es eine Fehlermeldung aus, statt zu raten, was gemeint sein könnte. Hier kommt die Methode javaCast() ins Spiel. Sie übernimmt zwei Argumente: Das erste spezifiziert den Typ, den Coldfusion an Java übergeben soll (int, long, double oder string). Das zweite Argument sollte der eigentliche Wert sein, den man übergeben will. Hier eine korrigierte Version des obigen Versuchs:
Das Argument, das der Methode getCommission() übergeben wird, ist jetzt javaCast(„int“, 23). Damit weiß Coldfusion, dass es die int-Version der Methode getCommission() aufrufen soll.
Mit nur wenigen neuen Funktionen und einigen elementaren Java-Kenntnissen kann man die Leistungsfähigkeit und den Funktionsumfang des Java-Fundaments von Coldfusion ausschöpfen. Man sollte sich auf jeden Fall einmal mit den Java-Standardbibliotheken vertraut machen sowie mit den hier vorgestellten Konzepten. Damit eröffnet sich eine völlig neue Welt, und es ist eine hervorragende Möglichkeit, erste Gehversuche mit Java zu machen.
Neueste Kommentare
Noch keine Kommentare zu Coldfusions Java-Connection
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.