[SOLVED]update() bei MVC

Status
Nicht offen für weitere Antworten.

metalfan

Aktives Mitglied
Moin,

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
 

byte

Top Contributor
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?


Das liegt am Interface Observer aus der Java API. Dort ist folgende Methodensignatur definiert:

Code:
void update(Observable o, Object arg)

Object deswegen, damit man das Interface mit jedem beliebigen Objekt verwenden kann. In diesem Fall sind es Strings. Es muss dann zur Laufzeit geprüft werden, ob das übergebene Objekt ein String ist. Dann kann man dieses Objekt zu String casten und dieses Objekt wieder als String behandeln (zur Erinnerung: jedes beliebige Objekt erbt von Object).

obj.toString() ist natürlich möglich, aber nicht nötig, da die toString() immer implizit aufgerufen wird bei einem System.out.println().

Der zweite Parameter von update() wird zwar nicht verwendet, ist aber eben aufgrund der Interface-Definition so vorhanden.
 

metalfan

Aktives Mitglied
Aha, danke für die Info.

Den String aus arg1 zu bekommen funktioniert ja, aber wie mache ich das mit einem Array von Hashmaps?

model:
Code:
public ArrayList setQuery(String searchtype, String search)
{
...
return list1;
}

view:
Code:
...
public void update(Observable arg0, Object arg1) 
{
...
for ( Iterator it = list1.iterator(); it.hasNext(); )
{
	HashMap<String,String> test =(HashMap<String,String>) it.next();
...
}

list1.iterator(); funktioniert nicht weil die Liste im model erstellt und als arg1 übergeben wurde, arg1.iterator();
weigert sich aber auch standhaft?

Julius
 

byte

Top Contributor
Was soll denn list1 sein? Eine List? Dann musst Du halt das Object arg1 auf ArrayList casten:

Code:
if(arg1 instanceof List) {
  List list1 = (List)arg1;
  ...
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Mr.Isaaaac [SOLVED] System Tray Popup MenüItem mit Icon? Java Basics - Anfänger-Themen 7
B [ Solved ]Unix Commando ausfuehren Java Basics - Anfänger-Themen 8
T [SOLVED] Java String equals funktioniert nicht Java Basics - Anfänger-Themen 5
W [Solved] String in Datum umwandeln Java Basics - Anfänger-Themen 5
M [SOLVED]JComboBoxen dynamisch erstellen und abfragen Java Basics - Anfänger-Themen 2
M [SOLVED]Swing Event Management Java Basics - Anfänger-Themen 7
M [SOLVED]private Daten head - neues objekt? Java Basics - Anfänger-Themen 12
M [SOLVED]parameter übergabe an objekte Java Basics - Anfänger-Themen 2
G eine Knoten aus einem Baum löschen. [SOLVED] Java Basics - Anfänger-Themen 7
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
E Mysql Update wenn es nicht existiert insert Java Basics - Anfänger-Themen 14
G Konstruktor und update Java Basics - Anfänger-Themen 4
Henri Webservice Delete und Update Methode funktioniert nicht Java Basics - Anfänger-Themen 27
J Threads PrograssBar update während thread Java Basics - Anfänger-Themen 13
S Lost-Update Semaphore Java Basics - Anfänger-Themen 6
K Schlüsselworte Nach Java update findet mdb Datei nicht Java Basics - Anfänger-Themen 6
M Methodenaufruf über SQL UPDATE Java Basics - Anfänger-Themen 8
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
J fehler nach windows update Java Basics - Anfänger-Themen 44
Y Observer update Java Basics - Anfänger-Themen 3
G Threads Konstantes Update Java Basics - Anfänger-Themen 1
X Eventservice Probleme nach Update Java Basics - Anfänger-Themen 0
B VAriables update in for-Schelifen Java Basics - Anfänger-Themen 3
L Jar aus Jar Starten lassen (Update Tool) Java Basics - Anfänger-Themen 6
P Update System Java Basics - Anfänger-Themen 16
R Nach Ubuntu-Update: Konsole spuckt bei neu Kompilierten Programmen Fehler aus (BlueJ)(Ubuntu12.04) Java Basics - Anfänger-Themen 11
L Auf herunterfahren des PCs reagieren und Datensatz update machen Java Basics - Anfänger-Themen 15
K Threads jProgressBar update Java Basics - Anfänger-Themen 14
Gugelhupf JDK installieren Fehlermeldung 1336 - Java SDK 7 Update 5 x64 Java Basics - Anfänger-Themen 4
A JDK installieren Java update - neu installieren? Java Basics - Anfänger-Themen 7
R JDK installieren Nach Update auf java 1.7 Connection refused Java Basics - Anfänger-Themen 9
E Programm - Update via Internet? Java Basics - Anfänger-Themen 5
B JDK installieren Java SE Development Kit 6 Update 25 Java Basics - Anfänger-Themen 5
M Update-Ticker... String in Textdatei schreiben und auslesen Java Basics - Anfänger-Themen 5
S MVC Prinzip - update() ? Java Basics - Anfänger-Themen 2
B Problem mit prepareStatement UPDATE Java Basics - Anfänger-Themen 2
M Serializable - Bei Update ältere Daten importieren Java Basics - Anfänger-Themen 14
C JAVA - Einstieg mit Eclipse - Update Sites und Ähnliches Java Basics - Anfänger-Themen 6
S JTree, Problem mit View Update Java Basics - Anfänger-Themen 2
L Java Persistence API - Update Befehl? Java Basics - Anfänger-Themen 5
hdi Fehler beim Model-Update einer JList (DefaultListModel) Java Basics - Anfänger-Themen 3
A update/draw schleife Java Basics - Anfänger-Themen 5
S update wird nicht aufgerufen Java Basics - Anfänger-Themen 9
G JFreeChart und das Update(was nicht klappt). Java Basics - Anfänger-Themen 3
A label update Java Basics - Anfänger-Themen 10
Y JDK 6 Update 5 with Java EE? Java Basics - Anfänger-Themen 2
M Java SQL-Update Java Basics - Anfänger-Themen 6
A per "update" ein Bild Strich für Strich "male Java Basics - Anfänger-Themen 9
S Ein Update System programmieren Java Basics - Anfänger-Themen 27
P Zeichenprogramm-->update() aushebeln Java Basics - Anfänger-Themen 11
S SQL UPDATE in Java "wie schreiben"? Java Basics - Anfänger-Themen 6
E Update JList Java Basics - Anfänger-Themen 13
J Problem bei Update auf Datenbank Java Basics - Anfänger-Themen 2
K Observer Observable update() . Java Basics - Anfänger-Themen 13
R JRE 1.5.0 Update 7 Install erkennt nicht Firefox/Netscape Java Basics - Anfänger-Themen 3
M Datenbankabfrage mit UPDATE Java Basics - Anfänger-Themen 4
M Unterschied zwischen J2SE 5.0 Update x und J2SE 1.4.x Java Basics - Anfänger-Themen 4
N Array aus JCheckBox? 1000 if's UPDATE: Spaltennamen auslesen Java Basics - Anfänger-Themen 12
G Update auf Datenbankspalte vom Typ Timestamp mit aktu. Datum Java Basics - Anfänger-Themen 3
G Observable/Observer update wird nicht ausgeführt Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben