1

オブジェクト値は非公開であるため、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

4 に答える 4

1

XStreamについてはわかりませんが、アクセサー(パブリック、プライベートなど)を無効にできるリフレクションAPIを使用していることは確かです。

于 2010-01-29T18:10:21.583 に答える
1

オブジェクト値は非公開であるため、XStream はどのようにオブジェクト値を取得しますか?

リフレクションを使用します。XStream がさまざまな Java タイプを変換する方法の詳細については、コンバーターのリストを参照してください。

stackoverflow でコードを強調表示してインデントするにはどうすればよいですか?

テキストを強調表示し、101010 のようなコード ボタンを押します

于 2010-01-29T18:11:14.623 に答える
1

API リフレクションあり。「getDeclaredField」メソッドを使用してクラスの任意のフィールドを取得し、フィールドの値を取得できます

于 2010-01-29T18:22:26.800 に答える
0

彼らは反射によってそれを行います。これにより、非公開メンバーにもアクセスできます。例については、こちらをご覧ください。

于 2010-01-29T18:11:05.340 に答える