tufan: snapshot von einem thread

Beitrag lesen

Hallo Slyh,

Algorithmus schreibt man mit nur einem l. Oben schreibst du es zweimal
richtig. Danach immer falsch, auch im Quellcode.

danke. künftig weiss ich es besser :-)

Die URLClassLoader-Klasse hätte es evtl. auch getan. Aber ein eigener
ClassLoader schadet eigentlich auch nicht, sofern man keine Bugs
reinprogrammiert. :)

hmm.. scheint bisjetzt gut zu laufen. Ausserdem kompiliert mein ClassLoader auch .java dateien, wenn es sein muss.

Könnte man die Start-Methode nicht auch mit in SortModule reinnehmen?
Ob die Klasse nun von Thread ableitet oder nur eine Start-Methode
anbietet, die dann vielleicht an einen Thread delegiert, ist doch
eigentlich egal.

SortModule ist ein interface. Ich könnte höchstens noch definieren, dass die abgeleiteten Klassen eine run() Methode haben sollen. Wäre aber IMHO nicht sinnvoll.

Schau dir mal iterator() und Iterator an. Das ist die "modernere"
Methode des Java Collections Framework, das die Enumeration-Geschichte
ablösen sollte. Steht auch so im Javadoc der Enumeration-Klasse.

wenn mir noch Zeit bleibt, werde ich auf Iterator umstellen. Danke für den Tipp.

Keine Ahnung, wieso das nicht gehen soll. Es scheint für mich gültiger
Java-Code zu sein. Zumindest solange das zu instanzierende Objekt
tatsächlich das Interface "SortModule" implementiert. (Allerdings
habe ich es jetzt nicht ausprobiert.)

eben, das war auch mein Problem. Ich habe auch keine Ahnung warum das nicht geht. Hat mich eine Menge nerven gekostet bisjetzt.

Was passiert, wenn du "sm" nachträglich nach "SortModule" castest?

Wie genau äußert sich das "funktioniert nicht" eigentlich? Welche
Fehlermeldung erscheint?

ClassCastException ist die Folge. Die Ausführung wird beendet.

Ich habe jedoch keine Möglichkeit gefunden ein Integer Array zu erhalten (das Array, das sortiert werden soll; und von dem ich die Snapschüsse brauche).

Aus der Javadoc-Doku von java.lang.reflect.Method.invoke():
"If the method completes normally, the value it returns is returned
to the caller of invoke; if the value has a primitive type, it is
first appropriately wrapped in an object. However, if the value has
the type of an array of a primitive type, the elements of the array
are not wrapped in objects; in other words, an array of primitive
type is returned."

jepp. Aber, ich hatte bis vor ein paar Stunden nicht die aktuellste Java Version. Da hat invoke immer nur "gewrapptes" Object zurückgeliefert.

Letzteres würde nach meinem Verständnis mehr Sinn machen. Wieso sollte
die Sortier-Klasse wissen wie oft die GUI aktualisiert werden soll?

Nimm doch eine der Timer-Klassen, um den Zustand der Sortier-Klassen
kontinuierlich abzufragen. Für GUIs am besten javax.swing.Timer.

hmm.. damit das möglich ist, muss ich das type-casting-Problem (s.o.)lösen.

PS:
Das Interface SortModule:

  
public interface SortModule  {  
 public void swap (int idx1, int idx2);  
 public void draw(int index, int wert);  
}  

Grüsse aus Berlin

tufi.