ich habe folgende dinge:
da in der klasse Node universal bleiben soll, ist der constructor protected
und der benutzer des packages soll eine klasse, die von Node erbt, schreiben
um nun die klasse AVLTree zu benutzen, müsste das ganze ungefähr so aussehen
leider gehts wohl so einfach nicht ... ich bekomme folgende fehlermeldung:
ich will sicherstellen, dass in der AVLTree klasse nur abkömmlinge von Node
benutzt werden, die noch bspw noch Comparable sind, also einige andere Dinge erfüllen.
allerdings ist es sinnlos die Node klasse zu benutzen, da diese nicht
variabel auf die bedürfnisse für den jeweilgen benutzer änderbar ist.
nebenproblem:
außerdem soll der user methoden wie compareTo vom interface Comparable selbst definieren.
leider weiß ich nicht genau, wie ich dieses problem so löse, also habe ich erstmal der Node klasse
das interface aufgezwungen, auch wenn es dort von der Logik her sinnlos ist.
mfg
ghost_assassin31969
Code:
public interface Nodeable<N> extends Comparable<N>
public class Node implements Nodeable<Node>
public class AVLTree<N extends Nodeable<N>>
da in der klasse Node universal bleiben soll, ist der constructor protected
und der benutzer des packages soll eine klasse, die von Node erbt, schreiben
Code:
class myNode extends Node
um nun die klasse AVLTree zu benutzen, müsste das ganze ungefähr so aussehen
Code:
AVLTree<MapNode> myTree = new AVLTree<MapNode>();
leider gehts wohl so einfach nicht ... ich bekomme folgende fehlermeldung:
Bound mismatch: The type myNode is not a valid substitute for the
bounded parameter <N extends Nodeable<N>> of the type AVLTree<N>
ich will sicherstellen, dass in der AVLTree klasse nur abkömmlinge von Node
benutzt werden, die noch bspw noch Comparable sind, also einige andere Dinge erfüllen.
allerdings ist es sinnlos die Node klasse zu benutzen, da diese nicht
variabel auf die bedürfnisse für den jeweilgen benutzer änderbar ist.
nebenproblem:
außerdem soll der user methoden wie compareTo vom interface Comparable selbst definieren.
leider weiß ich nicht genau, wie ich dieses problem so löse, also habe ich erstmal der Node klasse
das interface aufgezwungen, auch wenn es dort von der Logik her sinnlos ist.
mfg
ghost_assassin31969