无法使用Android中的xstream库序列化包含ArrayList的java对象

时间:2014-03-17 04:08:44

标签: java android xml serialization xstream

使用xstream库将Android中的对象序列化为XML。但它不起作用。此处显示的对象包含ArrayList作为成员。用xstream序列化这样的对象是不可能的吗?或者有什么方法可以使这项工作?

http://x-stream.github.io/

 public class MainActivity extends Activity {

TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

textView = (TextView) findViewById(R.id.textView1);

ArrayList<String> str = new ArrayList<String>();
str.add("test xml string one");
str.add("test xml string two");
str.add("test xml string three");

ExampleObject testObj = new ExampleObject(str); 

XStream xstream = new XStream(new DomDriver());

String xmlStr = xstream.toXML(testObj);

textView.setText(xmlStr);

} // onCreate

public class ExampleObject {

ArrayList<String> memberList;

 public ExampleObject(ArrayList<String> list) {
     memberList = list;
 }

} // ExampleObject

}

1 个答案:

答案 0 :(得分:1)

您是否实施了串行UID?

这就是它可能无法正常运作的原因:

private static final long serialVersionUID = 12345678;

Serializable类使用上面提到的UID解码写入的对象。如果没有这个数字,该类将无法解码该对象。我也听说如果你明显修改了类,那么尝试读回数据,操作就会失败。