In PHP können nicht-statische Methoden einer Klasse auf statische Variablen zugreifen.
Beweis:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php class StaticTester { // Statische Variable private static $_id=72; // Default-Konstruktor function __construct() { self::$_id++; } // Statische Methode public static function staticMethod() { echo ('call of static method: ' . self::$_id); } // Nicht-statische Methode public function nonStaticMethod() { echo ('call of non-static method: ' . self::$_id); } } StaticTester::staticMethod(); echo "<br/>"; StaticTester::nonStaticMethod(); ?> |
Das ist ein Unterschied zum Standard in Java.
Man muss in NetBeans nicht immer System.out.println(“”) eintippen. Wenn man sout in den Quelltext schreibt und dann die “Tab”-Taste drückt, wird das entsprechende Kommando automatisch hingeschrieben. Der Mausfokus wird dabei sogar zwischen die Hockommatas gesetzt.
In Eclipse erreicht man diesen Effekt, indem man “syso” schreibt und danach Strg + Leertaste drückt.
Der geniale Source-Code-Formatierer von Polystyle ist dank eines Tricks günstiger zu bekommen.
Musikvideo: Adobe Flash Player (Version 9 oder höher) wird benötigt um dieses Musikvideo abzuspielen. Die aktuellste Version steht hier zum herunterladen bereit. Außerdem muss JavaScript in Ihrem Browser aktiviert sein.
Um UTF-8 Zeichensätze korrekt einlesen zu können, muss man (bei Verwendung der kXML-Bibliothek) den Parser auf UTF-8 einstellen:
1 2 3 4 | FileConnection fc = (FileConnection) Connector.open(file:///root1/test.xml); InputStream is = fc.openDataInputStream(); InputStreamReader reader = new InputStreamReader(is, "UTF-8"); XmlParser parser = new XmlParser(reader); |
Zur Sicherheit sollten die XML-Dateien immer mit der Kodierung “UTF-8 ohne BOM” (einstellbar in Notepad++) abgespeichert werden.
Hier ein kleiner Beispielcode um einen Zeilenumbruch oder eine Tabulator-Einrückung in Java zu entfernen:
Etwas unsaubere Lösung mit replace:
1 2 3 4 5 6 7 8 9 10 11 | public String formatText(String strGivenText) { // Tabulator entfernen String strNewText = strGivenText.replace('\t', '\0'); // Zeilenumbruch entfernen (Unix) strNewText = strNewText.replace('\n', '\0'); // Zeilenumbruch/Wagenrücklauf entfernen (Windows) strNewText = strNewText.replace('\r', '\0'); return strNewText; } |
Elegante Lösung mit StringBuffer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public String formatText(String strGivenText) { StringBuffer sbFormattedText = new StringBuffer(strGivenText); for(int i=0; i<sbFormattedText.length(); i++) { if(sbFormattedText.charAt(i) == '\n') sbFormattedText.deleteCharAt(i); if(sbFormattedText.charAt(i) == '\r') sbFormattedText.deleteCharAt(i); if(sbFormattedText.charAt(i) == '\t') sbFormattedText.deleteCharAt(i); } return sbFormattedText.toString(); } |
Die java.lang.IllegalStateException taucht bei Applikationen aus der Java Micro Edition häufig auf, wenn versucht wird bei einem Form-Objekt mit append ein Item hinzuzufügen, das bereits schon auf dem Form existiert.
Beispiel:
1 2 3 4 | Form neuesForm = new Form("Titelzeile"); StringItem text = new StringItem("Label","Text"); neuesForm.append(text); neuesForm.append(text); |
Das ist verboten. Um dasselbe Objekt erneut dem Form hinzufügen zu können, muss man die ältere Version zuerst mit delete entfernen.
Beispiel:
1 2 3 4 5 | Form neuesForm = new Form("Titelzeile"); StringItem text = new StringItem("Label","Text"); neuesForm.append(text); neuesForm.delete(0); neuesForm.append(text); |
Die delete-Methode akzeptiert nur Werte vom Typ Integer. Die “0″ steht für das erste Element, welches dem Form hinzugefügt wurde, die “1″ für das zweite Element, usw.. Mit deleteAll() können alle Element vom Form entfernt werden.


0