java - 如果在 xml 中它是空的,为什么 simplexml 将 NULL 设置为字段?

标签 java xml string null simple-framework

考虑这段代码:

public class Param {

    @Text(required = false)
    protected String param;

    public String getValue() {
        return param;
    }
}

我有这个 xml:

<item key="Key"></item>

解析此 xml getValue() 后返回 null 而不是空字符串。

为什么会出现这种行为?

最佳答案

此行为是指它发现有一个空值(不是空格)。所以 String 绑定(bind)到那个甚至没有初始化(不会占用内存)。

因为 String a=""; 是一个初始化变量,它在低级别分配了内存。否则如果设置为空则无需初始化。对于类对象的企业应用程序来说,成本可能很高。

更多

关于字符串是一个字符数组,每个字符都与ASCII相关联值(value)

测试一下

String a="";
System.out.println(a));

输出:

//[B@459bdb65

String a;
System.out.println(a));

输出:

java.lang.RuntimeException: Uncompilable source code - variable a might not have been initialized

字符在哪里

char a='A';
System.out.println((int)a);

输出:

65

关于java - 如果在 xml 中它是空的,为什么 simplexml 将 NULL 设置为字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29846019/

相关文章:

java - 是否可以将变量分配给两种类型?

java - 如何查看 Apache Derby 是否已安装并正在运行?

java - 使用 JSP Scriplet 和 JSON 模型属性

string - 使用PowerShell选择字符串的第一个字符的最快,最简洁的方法是什么?

c# - 从 IList<string> 或 IEnumerable<string> 创建逗号分隔列表

java - 在java中的链表中删除节点之前如何存储节点?

c# - Xml 不保存到文件

android - 如何在 onPreExecute 停止异步任务?

c - 由任何字符分隔的值无法从字符串中正确读取

javascript - 如何为特殊字符编写正确的 xml