是否可以硬编码实例变量的默认值?

时间:2013-12-16 20:04:41

标签: java string default

我在编码的新对象中有一个实例变量,几乎总是某个值。在这种情况下它的“N”。将默认值硬编码为String实例变量是否可以?

private String aBusinessSwitch= "N";

稍后在一个方法中,我有一个if条件,在极少数情况下只会将值设置为“Y”。

当我声明字段时,不要硬编码默认值“N”,而是将else添加到我的if语句中,将其设置为“N”

if (isCold) {aBusinessSwitch = "Y"; }
  else {aBusinessSwitch = "N"; }

4 个答案:

答案 0 :(得分:2)

在这种情况下使用bool? Enum如果你需要的不仅仅是&号

答案 1 :(得分:2)

直接的答案是“除非你需要能够存储几乎无限种类的价值,否则这是不赞成的”。

您需要两个以上的值吗?如果没有,请考虑布尔值。如果是,请考虑枚举。如果您需要几乎无限数量的值,则可以使用String。

如果您选择使用字符串来实现此目的,您的程序仍然可以正常工作。但是,请始终牢记,您为代码增加复杂性的每个地方,都会有更多出错的机会,并且在未来会带来可维护性挑战。

答案 2 :(得分:1)

正如其他人所指出的,使用“N”和“Y”暗示String是错误的类型,布尔或Enum可能是更好的选择。但这不能回答你的问题。

我不会使用默认值,因为它会分析逻辑如何在两个位置确定此值。如果你只在一个地方设置它,如果这个地方在构造函数中,你甚至可以使它成为最终的,使代码更容易理解。

答案 3 :(得分:0)

是使用布尔或普通实例变量,Enum最适合大量值。