我有一个java类,其中一个字段包含getter和setter,第二对getter和setter以另一种方式访问该字段:
public class NullAbleId {
private static final int NULL_ID = -1;
private int internalId;
getter & setter for internalId
public Integer getId() {
if(this.internalId == NULL_ID) {
return null;
} else {
return Integer.valueOf(internalId);
}
}
public void setId(Integer id) {
if (id == null) {
this.internalId = NULL_ID;
} else {
this.internalId = id.intValue();
}
}
}
(这种结构的原因是我想构建一个way to hande Nullable Intergers)
在Flash / Flex客户端,我有一个具有两个属性的类:id和internalId(id属性仅用于测试,最后它们应返回internalId值)
BlazeDS接缝传输两个值:id和internalId,因为它们都有一个完整的getter setter对。 我希望Blaze不要传输id,只应传输internalId。但我不知道如何配置它。
答案 0 :(得分:3)
BlazeDS序列化的所有规则都在这里:
http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=serialize_data_3.html
这是一个引用:“不包括静态,瞬态或非公共字段,以及非公共或静态的bean属性。”
因此,如果您可以使您的id属性符合该条件,则将其排除。另一个选择是创建一个明确不包含id属性的自定义序列化程序。
一切顺利,
〜哈里斯
答案 1 :(得分:1)
除了transient / marshaller,您还可以实现Externalizable接口并创建自定义序列化。
答案 2 :(得分:0)
它可能有点旧,但它可以帮助一些:关于excluding properties from Java to Flex via BlazeDS
的票很好编辑:一个更好的解决方案,是使用@AmfIgnore
(或@AmfIgnoreField
,如果你的序列化直接在字段上)注释存在于spring-flex-core.jar中(我用过) 1.5.2-RELEASE)