Java Quiz

Heute mal ein kleines Java Quiz. Schaut Euch mal diese AussenKlasse an, die eine innere Klasse (Innen) in einer Methode definiert hat:


public class AussenKlasse {

private final String aussenVar = "aussenVar";

public void aussenMethode() {

final String innenMethodeVar = "innenMethodeVar";

class Innen {
private final String innenVar = "innenVar";

public Innen() {
printInnen();
}

public void printInnen() {
System.out.println("aussenVar=" + aussenVar);
System.out.println("innenMethodeVar=" + innenMethodeVar);
System.out.println("innenVar=" + innenVar);
}
}
new Innen();
}

public static void main(String[] args) {
AussenKlasse a = new AussenKlasse();
a.aussenMethode();
}

}

Was ist richtig?

1. Die Klasse läßt sich nicht compilieren, da Klassen nicht in Methoden definiert werden dürfen.

2. Es gibt eine ClassCastException.

3. Es wird die printInnnen Methode ausgeführt.

4. Es wird folgendes auf System.out ausgegeben:
aussenVar=aussenVar
innenMethodeVar=innenMethodeVar
innenVar=innenVar

5. Es wird folgendes auf System.out ausgegeben:
aussenVar=
innenMethodeVar=innenMethodeVar
innenVar=innenVar

6. Es gibt eine NullPointerException

Lösung: „Java Quiz“ weiterlesen

JAXB 2.0 lesbarer XML

Um den XML Stream in lesbare Form zu formatieren,
muss nur das folgende Property gesetzt werde


marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

Umlaute beim marshal von XML mit JAXB 2.0

Beim serialisieren von Objekten mit JAXB 2.0 in XML muss das Encoding gesetzt werden, sonst fehlen
die deutschen Umlaute. Dies geht so:

JAXBContext ctx = JAXBContext.newInstance(new Class[] { Exporter.class });
Marshaller marshaller = ctx.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_ENCODING, "ISO-8859-1");
marshaller.marshal(this, new FileWriter(file));