Hallo Programmierer 
Ich habe angefangen einen kleinen Vokabeltrainer in Java zu schreiben.
Ich habe mir überlegt (zunächst einmal) einfach die Vokabeln in ein XML-File zu schreiben.
An Datenstrukturen gibt es nicht viele:
- Vocab
- VocabList
- FileFactory
(stellt momentan Funktionen bereit, um in eine XML-Datei zu schreiben, zu lesen und ein Verzeichnis zu erstellen)
Bis auf eines klappt das soweit auch alles:
Die Klasse Vocab verwaltet intern 2 Strings - Vokabel Übersetzung
Wenn ich nun eine Vokabel in eine VocabList einfüge, und diese dann in ein XML File schreibe, enthält das XML File nur die Übersetzung. Ich weiß bloß nicht warum ?
Ich bin mir ziemlich sicher, dass es nicht sonderlich gern gesehen wird, wenn jemand hier sämtlichen Code seiner Klassen postet, weil das wohl die Übersichtlichkeit immens beeinträchtigt, weil ich mir sicher bin, dass der Fehler in der Klasse Vocab zu suchen ist, hier mal die Klasse:
Was ist daran falsch ?
Wahrscheinlich ist das so ein ganz dummer Fehler, den ich nicht erkenne oder ?
//Edit:
Habe ganz vergessen zu schreiben, wie ich das ganze in ein XML-File schreibe:
Dazu benutze ich java.bean.XMLEncoder/XMLDecoder
Also:
Tim
Ich habe angefangen einen kleinen Vokabeltrainer in Java zu schreiben.
Ich habe mir überlegt (zunächst einmal) einfach die Vokabeln in ein XML-File zu schreiben.
An Datenstrukturen gibt es nicht viele:
- Vocab
- VocabList
- FileFactory
(stellt momentan Funktionen bereit, um in eine XML-Datei zu schreiben, zu lesen und ein Verzeichnis zu erstellen)
Bis auf eines klappt das soweit auch alles:
Die Klasse Vocab verwaltet intern 2 Strings - Vokabel Übersetzung
Wenn ich nun eine Vokabel in eine VocabList einfüge, und diese dann in ein XML File schreibe, enthält das XML File nur die Übersetzung. Ich weiß bloß nicht warum ?
Ich bin mir ziemlich sicher, dass es nicht sonderlich gern gesehen wird, wenn jemand hier sämtlichen Code seiner Klassen postet, weil das wohl die Übersichtlichkeit immens beeinträchtigt, weil ich mir sicher bin, dass der Fehler in der Klasse Vocab zu suchen ist, hier mal die Klasse:
Java:
public class Vocab {
public final static String DEFAULT_VALUE = "Default";
// Instance-Variables
private String voc;
private String translation;
// Constructores
public Vocab() {
setVocab(Vocab.DEFAULT_VALUE);
setTranslation(Vocab.DEFAULT_VALUE);
}
public Vocab(String voc, String transl) {
setVocab(voc);
setTranslation(transl);
}
@Override
public String toString() {
return (voc + " - " + translation);
}
// Getter
public String getVoc() {
return voc;
}
public String getTranslation() {
return translation;
}
// Setter
public final void setVocab(String voc) {
if(voc == null) {
throw new IllegalArgumentException("The Vocab can't be null");
}
this.voc = voc;
}
public final void setTranslation(String transl) {
if(transl == null) {
throw new IllegalArgumentException("The Translation can't be null");
}
this.translation = transl;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((voc == null) ? 0 : voc.hashCode());
result = prime * result + ((translation == null) ? 0 : translation.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if(this == obj)
return true;
if(obj == null)
return false;
if(obj instanceof Vocab) {
final Vocab otherVoc = (Vocab) obj;
if(voc.equals(otherVoc.getVoc())) {
if(translation.equals(otherVoc.getVoc())) {
return true;
}
}
}
return false;
}
}
Was ist daran falsch ?
Wahrscheinlich ist das so ein ganz dummer Fehler, den ich nicht erkenne oder ?
//Edit:
Habe ganz vergessen zu schreiben, wie ich das ganze in ein XML-File schreibe:
Dazu benutze ich java.bean.XMLEncoder/XMLDecoder
Also:
Java:
XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("PATH")));
encoder.writeObject($(OBJECT));
encoder.close();
Tim
Zuletzt bearbeitet: