K
Kaila
Gast
Moin moin,
ich schreibe gerade an meiner Master-Arbeit und habe folgendes Problem in Java.
Ich habe zwei Klassen:
und
Diese beiden Klassen haben eine Methode draw(Graphics g).
nun habe ich eine andere Klasse:
Die Klasse MyGaphics rufe ich in main folgendermassen auf:
Ich möchte an dieser Stelle über das Generic T entweder eine Instance von
UpgmaChunk oder NjChunk in das MyGraphics Modul übergeben, dass dann
entweder die draw-Methode von UpgmaChunk oder NjChunk benutzt. Leider
funktioniert der oben beschriebene Code nicht. Ich muss in der paint-Methode
folgendes schreiben:
Gibt es unter der Benutzung von Generics elegantere Möglichkeiten, gleiche
Methode von unterschiedliche Instanzen aufzurufen?
Vielen Dank,
Kaila
ich schreibe gerade an meiner Master-Arbeit und habe folgendes Problem in Java.
Ich habe zwei Klassen:
Java:
public class UpgmaChunk{
...
draw(Graphics g);
...
}
Java:
public class NjChunk{
...
draw(Graphics g);
...
}
nun habe ich eine andere Klasse:
Java:
public class MyGraphics<T> extends Frame {
..
private T m_chunk;
..
public MyGraphics(String title, T chunk){
..
m_chunk=chunk;
..
}
..
@Override public void paint(Graphics g) {
..
m_chunk.draw(g, d.width, d.height);
..
}
..
}
Die Klasse MyGaphics rufe ich in main folgendermassen auf:
Java:
new MyGraphics<UpgmaChunk>("UPGMA: Phylogram", upgma.getRoot());
new MyGraphics<NjChunk>("NJ: Phylogram", nj.getRoot());
Ich möchte an dieser Stelle über das Generic T entweder eine Instance von
UpgmaChunk oder NjChunk in das MyGraphics Modul übergeben, dass dann
entweder die draw-Methode von UpgmaChunk oder NjChunk benutzt. Leider
funktioniert der oben beschriebene Code nicht. Ich muss in der paint-Methode
folgendes schreiben:
Java:
if(m_chunk instanceof UpgmaChunk){
((UpgmaChunk) m_chunk).draw(g, d.width, d.height);
}else{
((NjChunk) m_chunk).draw(g, d.width, d.height);
}
Methode von unterschiedliche Instanzen aufzurufen?
Vielen Dank,
Kaila
Zuletzt bearbeitet von einem Moderator: