Java中的XStream私有属性

时间:2010-01-29 18:07:54

标签: java xstream

XStream如何获取我的对象值,因为它们是私有的?

import com.thoughtworks.xstream.XStream;

class Person {
    private String name;

    public Person(String n) {
        name = n;
    }
}

public class Main {
    public static void main(String[] args) {
        XStream stream = new XStream();

        Person p = new Person("Joe");
        String xml = stream.toXML(p);
        System.out.println(xml);
    }
}

如何在stackoverflow中突出显示并缩进我的代码?

4 个答案:

答案 0 :(得分:1)

我不知道XStream,但他们肯定会使用反射API来禁用访问者(public,private,...)。

答案 1 :(得分:1)

  

XStream如何获取我的对象值   既然他们是私人的?

它使用reflection。有关XStream如何转换各种java类型

的详细信息,请参阅Converter listing
  

如何突出显示和缩进代码   在stackoverflow中?

突出显示文字并按下看起来像101010的代码按钮

答案 2 :(得分:1)

使用API​​反射。您可以使用class方法获取'getDeclaredField'的任何字段,然后获取字段value

答案 3 :(得分:0)

他们通过反思来做到这一点。这样您甚至可以访问私人成员。例如,查看here