Input/Output "transient" klappt nicht wie gewünscht

FXL

Mitglied
Hi zusammen,

folgender Test:

Java:
public class Foo implements Serializable {
    
    private boolean a;
    private transient boolean b;

    public Foo() {        
        a = false;
        b = false;
    }

    public boolean isA() {
        return a;
    }

    public void setA(boolean a) {
        this.a = a;
    }

    public boolean isB() {
        return b;
    }

    public void setB(boolean b) {
        this.b = b;
    }
}

Test-Ausgabe
Java:
public static void main(String[] args) {
        
        Foo testFoo = new Foo();
        
        testFoo.setA(true);
        testFoo.setB(true);
                
        XMLEncoder xmlEncoder = new XMLEncoder(System.out);
        xmlEncoder.writeObject(testFoo);            
        xmlEncoder.close(); 
        
    }

Output:
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.7.0_60" class="java.beans.XMLDecoder">
<object class="transienttest.Foo">
<void property="a">
<boolean>true</boolean>
</void>
<void property="b">
<boolean>true</boolean>
</void>
</object>
</java>

Nun meine Frage:
Warum wird die Member-Variable "B" der Klasse "Foo" trotzdem "transient" geschrieben?

Was mache ich falsch?


Gruß
 
Bin mir nicht sicher, aber ich glaube, du hast da was falsch verstanden:
Using XMLEncoder

BTW: Warum nutzt du nicht JAXB (auch teil von Java) un annotierst die Properties nicht einfach ordentlich - nur so als Frage.
 

Zurück
Oben