我在编码的新对象中有一个实例变量,几乎总是某个值。在这种情况下它的“N”。将默认值硬编码为String实例变量是否可以?
private String aBusinessSwitch= "N";
稍后在一个方法中,我有一个if
条件,在极少数情况下只会将值设置为“Y”。
当我声明字段时,不要硬编码默认值“N”,而是将else
添加到我的if
语句中,将其设置为“N”
if (isCold) {aBusinessSwitch = "Y"; }
else {aBusinessSwitch = "N"; }
答案 0 :(得分:2)
在这种情况下使用bool? Enum如果你需要的不仅仅是&号
答案 1 :(得分:2)
直接的答案是“除非你需要能够存储几乎无限种类的价值,否则这是不赞成的”。
您需要两个以上的值吗?如果没有,请考虑布尔值。如果是,请考虑枚举。如果您需要几乎无限数量的值,则可以使用String。
如果您选择使用字符串来实现此目的,您的程序仍然可以正常工作。但是,请始终牢记,您为代码增加复杂性的每个地方,都会有更多出错的机会,并且在未来会带来可维护性挑战。
答案 2 :(得分:1)
正如其他人所指出的,使用“N”和“Y”暗示String是错误的类型,布尔或Enum可能是更好的选择。但这不能回答你的问题。
我不会使用默认值,因为它会分析逻辑如何在两个位置确定此值。如果你只在一个地方设置它,如果这个地方在构造函数中,你甚至可以使它成为最终的,使代码更容易理解。
答案 3 :(得分:0)
是使用布尔或普通实例变量,Enum最适合大量值。