Hi also mein Problem ist glaub ich die Hashmap. weil dadurch dass die static ist nicht mehr die boolean variable veränderbar mit der setOrdered methode. Hat da wer ne idee vl was ich sonst als ne hashmap für di zwei boolean eintrage verwenden kann ? weil ich kann bei der hashmap das static nicht weglassen oder.
'Problem mit setter' vs 'Problem ist glaub ich die Hashmap', schonmal konfus
'weil dadurch dass die static ist nicht mehr die boolean variable veränderbar'
wie wo was, irgendwer ist static, und deshalb ist eine andere boolean-Variable betroffen?
hat das noch was mit
a) Problem mit setter
oder b) Problem ist glaub ich die Hashmap
zu tun?
Rest wird auch nicht klarer, static kann man übrigens immer weglassen, ist nur bisschen mehr Arbeit
bitte nochmal von vorne
'ich habe eine HashMap für folgenden Zweck ..., das führt zu boolean ...'
HtmlTag is ne enum klasse und ContainerElement ist die mutterklasse. Alle variablen di nicht hier initialiert sind werden über die mutterklasse importiert. Ja wenn ich das static weglasse schreien bei mir die Konstruktoren. Machen will ich mit der klasse dass hier:
Die Klasse List rendert Html-Listen. Es gibt ordered und unordered Html-Listen. In ordered Html-Listen werden die Einträge nummeriert ausgegeben, in unordered Html-Listen werden sie durch Aufzählungszeichen getrennt. Die Listenart bestimmt welcher Html-Tag für die Liste ausgegeben wird. Der Html-Tag für eine ordered Html-List ist <ol>, für die unordered Html-List <ul>. Der Parameter ordered des Konstruktors und die Methode setOrdered() legen fest, welche Listenart ausgegeben wird.
ordered = true:
<ol> <li>Item 1</li> <li>Item 2</li>
</ol>
ordered = false:
<ul> <li>Item 1</li> <li>Item 2</li>
</ul>
Alle Kind-Elemente von List müssen ListItem-Elemente sein. Überprüfen Sie in der Methode add() mit instanceof, ob das übergebene Element vom Typ ListItem ist. Ist das Element kein ListItem, dann erzeugt die Methode selbst ein ListItem-Objekt und fügt diesem das übergebene Element hinzu. Anschließend wird das ListItem in die Liste eingefügt. Überladen Sie die add()-Methode damit ListItem-Elemente auch durch die Übergabe von Strings hinzufügt werden können.
hmmm... nein, das sehe ich anders. Wenn deine Vermutung zutrifft, würde ich die Klasse HtmlTagList oder so nennen. Wenn die Klasse einen speziellen Zweck erfüllen soll, würde ich keinen bereits vergebenen Namen einer allgemeinen Standardklasse verwenden.
also es geht jetzt um dass ich habe die zwei enums HtmlTag.ol und HtmlTag.ul wenn im Konstruktor aufgerufen wird boolean ordered = true dann soll HtmlTag.ol aufgrufen werden bei false das andere wie kann ich das machen damit es nicht static ist. mit hashmap gehts nur static weil sonst schreien die konstruktoren
Ja egal nicht hier gegenseitig kritisieren mir gehts um mein problem bitte help^^
also es geht jetzt um dass ich habe die zwei enums HtmlTag.ol und HtmlTag.ul wenn im Konstruktor aufgerufen wird boolean ordered = true dann soll HtmlTag.ol aufgrufen werden bei false das andere wie kann ich das machen damit es nicht static ist. mit hashmap gehts nur static weil sonst schreien die konstruktoren
Hat deine Basisklasse denn eine Methode, mit der man das im Konstruktor gesetzte Tag nachträglich ändern kann?
Ist es überhaupt sinnvoll, den Typ (UL vs OL) nachträglich zu verändern?
Ne Basisklasse hat keine methode um nachträglich die ordered zu verändern aber das hängt ja nicht von der basisklasse ab sondern is ja nur für diese klasse gültig. als setOrdered(..)
Ja ist sinnvoll nachher noch zu verändern.
Ich habe es z.b. bei einer anderen klasse so gemacht: da hatte ich 7 verschiedene HtmlTags da hab ich einfach im super aufruf ne schleife gemacht: super(level > 0 && level < 7 ? HtmlTag.values()[level + 4] : null,false);
und oben halt noch private int level deklariert
geht dieser aufruf auch für boolean ? wüsste nämlich nicht wie
Ne Basisklasse hat keine methode um nachträglich die ordered zu verändern aber das hängt ja nicht von der basisklasse ab sondern is ja nur für diese klasse gültig. als setOrdered(..)
setOrdered ist ja eine Methode, die eigentlich das Tag verändern müsste. Das Tag wird aber bereits im Konstruktor an den Konstruktor der Basisklasse weitergegeben. Daher die Frage, ob man dieses Tag in der Basisklassen nachträglich ädnern kann.
Ich habe es z.b. bei einer anderen klasse so gemacht: da hatte ich 7 verschiedene HtmlTags da hab ich einfach im super aufruf ne schleife gemacht: super(level > 0 && level < 7 ? HtmlTag.values()[level + 4] : null,false);
und oben halt noch private int level deklariert
geht dieser aufruf auch für boolean ? wüsste nämlich nicht wie