Java 最佳做法是什么?
对于bean变量,Java的最佳编码标准是什么: 1。我应该使用基本数据类型吗?Java 最佳做法是什么?,java,oop,javabeans,Java,Oop,Javabeans,对于bean变量,Java的最佳编码标准是什么: 1。我应该使用基本数据类型吗? 2.我应该使用包装器类型吗? 或者两者都相同?我使用了基元类型 例如: private int i; private boolean b; public int getI() { } public void setI(int i) { this.i = i; } public boolean getB() { } public void setB(boolean b) { this.b =
2.我应该使用包装器类型吗? 或者两者都相同?我使用了基元类型 例如:
private int i;
private boolean b;
public int getI()
{
}
public void setI(int i)
{
this.i = i;
}
public boolean getB()
{
}
public void setB(boolean b)
{
this.b = b;
}
并使用setter和getter。谢谢,视情况而定。两者的存在都有很好的理由 应尽可能首选基本体。它们成本更低,并且不可为空,从而避免了很多潜在的bug 包装器可用于表示可空值(例如,在JPA中表示数据库中的可空列值,或在JAXB中表示XML元素的可选元素或属性)。这取决于具体情况
例如,您的bean可能会被来自数据库的信息填充
根据定义,列可能包含可为空的数据
在这种情况下,您将考虑使用非初等类型-IE整数。BR> 但是,您可能希望使用基本类型+操作,因此会发生自动装箱/取消装箱(即,根据您的代码,自动从整数转换为整数),这可能会对性能造成一些影响
总之,
在可能的情况下尝试使用原语,在可能需要保留空值的情况下使用非原语
尽可能使用原语,但在需要存储空值时不要使用原语 示例:
Boolean isObject;
boolean isPrimitive;
int xPrimitive;
Integer xObject;
如果你存储这些值,你会发现它们并不相等
// isObject == null
// isPrimitive == false
// xPrimitive == 0
// xObject == null
因此,最佳实践是对您的应用程序有意义的。优化时,您希望在对象上使用原语以减少内存开销,但前提是它不会与您的业务和逻辑需求冲突。通常最好使用原语而不是包装器。包装器对于以下方法非常有用:
Integer.toString(myInt);
此方法来自包装器类,但
myInt
是一个原语。一般情况下,原语将完成所有需要的操作。字符串不是原语类型。更好的答案是“使用原语类型,除非您也需要能够表示“无值”。布尔属性的惯例是使用is
而不是get
,因此它应该是公共布尔isB(){
。除非有充分的理由,否则不应该添加getter和setter。否则,它将倾向于成为一个贫血的模型,从而破坏封装,因为“行为”将在bean之外编码。