Java ist eine stark typisierte Sprache mit einer großen Anzahl von Typen und Objekten.
Für diejenigen, die von einer Skriptsprache kommen, ist die starke Typisierung und
die Zuweisung von Objekten sehr gewöhnungsbedürftig.
Dort wo in Skriptsprachen eine Zuweisung genügt, muß man in Java gleich mehrere Umformungen durchführen.
Die Befürworter einer starken Typisierung führen gerne den Raketenabsturz in den 60er Jahren ins Feld,
der durch einen Rundungsfehler aufgrund falscher Typenwahl entstanden ist und den der Compiler nicht
gemeldet hat.
Und trotz des hinlänglich bekannten Jahr-2000-Fehler: Eine eingebaute Konvertierung z.B. einer
Zahl in einen String bei einer Verkettung würde einfach viele Zeilen Code und viele Methoden und
Wrapperklassen ersparen. Und warum kann man Operatoren nicht für die Wrapperklassen zulassen?
Eine ganze Reihe von Vereinfachungen wären denkbar, ohne daß gleich Raketen vom Himmel stürzen.
Prinzipiell wären solche beschränkten, automatischen Konvertierungen möglich, wie man an der umständlichen
und zeitintensiven Verkettung von Zeichenketten sehen kann.
Wie in den anderen Programmiersprachen geht in diesem
Kapitel
darum, Daten zwischenzuspeichern und zu bearbeiten. Nur ist unter Java dieses Kapitel etwas umfangreicher.
Weil Java eben "typensicher" ist(raketensicher sei dahingestellt).
Einfache Multiplikation?
Hier werden einfach Variablen aus dem Eingabefeld multipliziert. Dabei muß der Text erst in die
Wrapper-Klasse Long umgewandelt werden. Zur Multiplikation wiederum müssen die beiden Zahlen im Format long vorliegen. Das Ergebnis
wird gleich in einem Objekt vom Typ Long über den Konstruktor verpackt, um schließlich das Ergebnis über die Methode toString auszugeben.
public class Vars extends ExampleView {
TextField number1 = new TextField("1",3);
TextField number2 = new TextField("7",3);
public void start() {
panelLocal.add (number1);
panelLocal.add (number2);
panelLocal.add (new Button("multipliziere "));
add (panelLocal);
writeMessage( example());
}
public String example() {
try {
Float float1 = new Float (number1.getText()); // Wrapper float1
Float float2 = new Float (number2.getText()); // Wrapper float2
Float result = new Float (float1.floatValue() * float2.floatValue()); // compute result with float
return "Ergebnis für " + float1.toString() + " * " + float2.toString() + ": " + result.toString();
}
catch (Exception e){
return "Fehler Eingabe!";
}
}
}
Der Betreiber von www.dBooks.de übernimmt keine
Verantwortung für den Inhalt und die Richtigkeit der Angaben auf
den verlinkten Websites.
Zu den üblichen NoNos gibt es keine direkten Verweise.