"null"属性是否应该是一个有效的值?



我有一个键=值属性,然后将其写入文件。如果键存在,但值为空或 null,则将其另存为 key="。现在,文字字符串"null"是否永远是键的有效属性值?在我的代码审查中被问到这个问题,但我觉得将其视为有效是一种不好的做法,因为系统将空字符串视为空值。

目前,如果属性为 null 或"null",则该属性的格式为空字符串

if (key != null && !key.trim().isEmpty() && key.startsWith("-D")) {    
if (value == null || value.equals("null")) {
value = "";
}
//Other code

该值将追加到要写入文件的格式化键上。

这可能应该发布到 http://codereview.stackexchange.com/

但是,"null"是否可以等同于null以及null是否可以等同于""完全是特定于领域的。如果您的应用程序可以使用它,那么它就可以使用它。故事结束。

但是"null"null""的概念在逻辑上是完全不同的,你正在处理接近代码级的配置(属性文件是由通常对编码有所了解的人编辑的)。通过使这些平等,你和任何看着你的代码的人的生活都变得更加困难,因为他们的认知负荷会增加,因为需要了解你选择的非标准特殊情况是如何工作的。

因此,如果你想制作好的代码,你永远不应该把"null"等同于nullnull等同于空字符串。

为什么需要知道键是否存在而没有值?在键值属性的上下文中,它没有任何意义,因为如果键没有值,那么键值对就不存在。Java 属性的常见用例如下:

# Literal value
key.1=value
# Empty string
key.2=
# Null (commented out means not defined)
# key.3=

文字字符串 "null" 不应被视为与 null 引用相同。这意味着,如果您的系统允许"null"成为有效的属性值,则只要您的系统没有明确声明其他方式,"对待"就是任何其他有效值。

取决于代码逻辑,但 NULL 和空字符串不同。使用哈希图时,您可以设置空键,有时使用它会有所帮助。如果您确定您使用的地图不能具有 NULL 键,则无需担心。 NULL 和字符串值"null"之间也存在差异。取决于你拥有的对象的性质,以及你在代码中的逻辑。

据我了解,您对 NULL 概念有问题。使用您当前的代码,如果有人输入字符串"null"(与 NULL 概念不同),您的值将为空。简短回答:是的,文本字符串"null"可以是有效的属性,但它取决于项目背后的逻辑。

value.equals("null") 正好是一个值,它不是 NULL.java 中 NULL 的唯一键是 "NULL"。(小写或大写,不带引号)

请参阅下面的代码,它可能会对您有所帮助。

String value = "null";  // where value key work is holding string value which is "null".

为了检查空,请使用以下代码

if (value == null)
in order to check null or empty use the below code
if (value == null || value.isEmpty()) 
//where is empty check for empty string like valueX = "";

最新更新