[英]How can I serialize a Java class via Hazelcast DataSerializable when it contains generic types?
[英]How to serialize a generic class in Java?
我已经开始阅读Java中的序列化以及其他语言中的一些,但是如果我有一个泛型类并且我想将它的实例保存到文件中该怎么办。
代码示例
public class Generic<T> {
private T key;
public Generic<T>() {
key = null;
}
public Generic<T>(T key) {
this.key = key;
}
}
什么是保存这种对象的最佳方法? (当然,在我真正的通用课程中还有更多内容,但我只是想知道实际的想法。)
你需要像往常一样制作泛型类Serializable
。
public class Generic<T> implements Serializable {...}
如果使用泛型类型声明字段,则可能需要指定它们应实现Serializable
。
public class Generic<T extends Serializable> implements Serializable {...}
请注意这里不常见的Java语法。
public class Generic<T extends Something & Serializable> implements Serializable {...}
如果您不希望(或不能)实现Serializable接口,则可以使用XStream。 这是一个简短的教程 。
在你的情况下:
XStream xstream = new XStream();
Generic<T> generic = ...;//whatever needed
String xml = xstream.toXML(generic);
//write it to a file (or use xstream directly to write it to a file)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.