小编San*_*and的帖子

Java代码约定:使用"default"作为变量名

我想使用'default'作为变量名.是否有一个代码约定(如类 - > clazz),它建议我应该如何命名变量?

java coding-style naming-conventions

10
推荐指数
1
解决办法
2684
查看次数

simpleframework,将空元素反序列化为空字符串而不是null

我在项目中使用simpleframework(http://simple.sourceforge.net/)来进行序列化/反序列化需求,但在处理空/ null字符串值时,它不能按预期工作(好吧,至少不是我期望的) .

如果我使用空String值序列化一个对象,它将显示为一个空的xml元素.

所以这
MyObject object = new MyObject();
object.setAttribute(""); // attribute is String

将序列化为
<object>
<attribute></attribute>
</object>

但反序列化该空属性将最终为null,而不是空字符串.

我认为它应该是一个空字符串而不是null,我完全疯了吗?我怎么能以我想要的方式让它工作呢?

哦,如果我使用null属性序列化对象,它将最终显示 <object/> 为人们可能期望的.

编辑:

添加了一个我正在运行的简单测试用例

@Test  
public void testDeserialization() throws Exception {  
    StringWriter writer = new StringWriter();  
    MyDTO dto = new MyDTO();  
    dto.setAttribute("");  

    Serializer serializer = new Persister();  
    serializer.write(dto, writer);  

    System.out.println(writer.getBuffer().toString());

    MyDTO read = serializer.read(MyDTO.class, writer.getBuffer().toString(),true);
    assertNotNull(read.getAttribute());  
}


@Root  
public class MyDTO {  
    @Element(required = false)  
    private String attribute;  

    public String getAttribute() {  
        return attribute;  
    }  

    public void setAttribute(String …
Run Code Online (Sandbox Code Playgroud)

java serialization deserialization simple-framework

7
推荐指数
1
解决办法
4791
查看次数