从 XMLEncoder 的序列化中排除 byte[]
excluding byte[] from serialization of XMLEncoder
问题是如何从 XMLEncoder 的序列化中排除 byte[]
,但我需要将此字段保存到数据库。我有一个对象
public class MyClass1 implements Serializable {
some properties ...
private byte[] a01_14_01_content;
getters and setters ...
}
和编码器:
import java.beans.XMLEncoder;
public class MyEncoder{
...
public byte[] getBytes() {
XMLEncoder e = new XMLEncoder(baos);
e.writeObject(answer);
e.close();
return baos.toByteArray();
}
}
我需要序列化除数组字段之外的所有字段。
transient
属性 的修饰符不起作用;
@Transient
get 方法上的注释不起作用;
@XMLTransient
属性 上的注释不起作用。
很简单,但我需要社区的帮助!
答案是在 get 方法上使用 @java.beans.Transient
注解而不是 @Transient。
在我的例子中 import javax.persistence.*
造成了 "bug" ))
public class MyClass1 implements Serializable {
some properties ...
private byte[] a01_14_01_content;
@javax.beans.Transient //not @Transient
public byte[] getA01_14_01_content() {
return a01_14_01_content;
}
//getters and setters ...
}
问题是如何从 XMLEncoder 的序列化中排除 byte[]
,但我需要将此字段保存到数据库。我有一个对象
public class MyClass1 implements Serializable {
some properties ...
private byte[] a01_14_01_content;
getters and setters ...
}
和编码器:
import java.beans.XMLEncoder;
public class MyEncoder{
...
public byte[] getBytes() {
XMLEncoder e = new XMLEncoder(baos);
e.writeObject(answer);
e.close();
return baos.toByteArray();
}
}
我需要序列化除数组字段之外的所有字段。
transient
属性 的修饰符不起作用;
@Transient
get 方法上的注释不起作用;
@XMLTransient
属性 上的注释不起作用。
很简单,但我需要社区的帮助!
答案是在 get 方法上使用 @java.beans.Transient
注解而不是 @Transient。
在我的例子中 import javax.persistence.*
造成了 "bug" ))
public class MyClass1 implements Serializable {
some properties ...
private byte[] a01_14_01_content;
@javax.beans.Transient //not @Transient
public byte[] getA01_14_01_content() {
return a01_14_01_content;
}
//getters and setters ...
}