Moin,
wieder ein Beispiel aus GotoJava:
Observer:
Observable:
Aufrufende Methode:
In der Observable Klasse wird ein String übergeben der in update() aber als Object obj Parameter steht? Warum nicht auch als String x?
Und warum ist obj.toString in update() nicht möglich?
Dann ist da noch dieser 2. Parameter (Observable o) von update(), wird nicht weiter verwendet...was kann man damit anstelen?
Julius
wieder ein Beispiel aus GotoJava:
Observer:
Code:
import java.util.Observable;
import java.util.Observer;
class Zuhoerer implements Observer
{
private String name;
Zuhoerer( String name )
{
this.name = name;
}
public void update( Observable o, Object obj )
{
if (obj instanceof String)
{
System.out.print("yes\n"); // passt
}
System.out.println( name + " lacht über \"" + obj + "\"" );
}
}
Observable:
Code:
import java.util.Observable;
class Witzeerzaehler extends Observable
{
public void erzähleWitz( String witz )
{
setChanged();
notifyObservers( witz );
}
}
Aufrufende Methode:
Code:
public class Party
{
public static void main( String args[] )
{
Zuhoerer achim = new Zuhoerer( "Achim" );
Zuhoerer michael = new Zuhoerer( "Michael" );
Witzeerzaehler ulli = new Witzeerzaehler();
ulli.addObserver( achim );
System.out.print(ulli.countObservers()+"\n");
ulli.erzähleWitz( "Sorry, aber du siehst so aus, wie ich "+
"mich fühle." );
ulli.erzähleWitz( "Eine Null kann ein bestehendes Problem " +
"verzehnfachen.");
ulli.addObserver( michael );
System.out.print(ulli.countObservers()+"\n");
ulli.erzähleWitz( "Wer zuletzt lacht, hat es nicht eher " +
"begriffen." );
ulli.erzähleWitz( "Wer zuletzt lacht, stirbt wenigstens " +
"fröhlich." );
ulli.deleteObserver( achim );
ulli.erzähleWitz( "Unsere Luft hat einen Vorteil: Man "+
"sieht, was man einatmet." );
}
}
In der Observable Klasse wird ein String übergeben der in update() aber als Object obj Parameter steht? Warum nicht auch als String x?
Und warum ist obj.toString in update() nicht möglich?
Dann ist da noch dieser 2. Parameter (Observable o) von update(), wird nicht weiter verwendet...was kann man damit anstelen?
Julius