Coldfusions Java-Connection

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.

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Jedes zweite Gerät mit Redline-Infostealer infiziert

Infostealer-Infektionen haben laut Kaspersky-Studie zwischen 2020 und 2023 um mehr als das sechsfache zugenommen.

4 Tagen ago

Kaspersky warnt vor kritischen Sicherheitslücken in Cinterion-Modems

Betroffen sind Millionen IoT- und M2M-Geräte Geräte weltweit. Unter anderem können Angreifer per SMS Schadcode…

4 Tagen ago

Google schließt Zero-Day-Lücke in Chrome

Von ihr geht ein hohes Risiko aus. Angreifbar sind Chrome für Windows, macOS und Linux.

6 Tagen ago

KI erkennt Emotionen in echten Sportsituationen

Forschende des KIT haben ein Modell zur Emotionsanalyse entwickelt, das affektive Zustände ähnlich genau wie…

7 Tagen ago

Ermittlern gelingt weiterer Schlag gegen Ransomware-Gruppe LockBit

Sie decken die Identität des Kopfs der Gruppe auf. Britische Behörden fahnden mit einem Foto…

1 Woche ago

Apple stellt neuen Mobilprozessor M4 vor

Er treibt das neue iPad Pro mit OLED-Display an. Apple verspricht eine deutliche Leistungssteigerung gegenüber…

1 Woche ago