Benny's Blog
Navigation: Home » Programmierung
13. April 2010

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.

10. April 2010

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.

2. April 2010

Der geniale Source-Code-Formatierer von Polystyle ist dank eines Tricks günstiger zu bekommen.


Neuer Preis für den Polystyle Source Code Formatter

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.

15. März 2010

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.

15. März 2010

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();
    }
15. März 2010

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.