bean变量的最佳Java编码标准是什么:
1。我应该使用原始数据类型吗?
2.我应该使用包装类型吗?
或者两者都相同?
答案 0 :(得分:11)
这取决于。两者都存在是有充分理由的。
应尽可能优先考虑基元。它们的成本更低,并且是不可空的,这可以避免很多潜在的错误。
包装器可用于表示可为空的值(例如,在JPA中,表示数据库中的可空列值,或在JAXB中,表示XML元素的可选元素或属性)。
答案 1 :(得分:5)
这取决于。
例如,您的bean可能会填充来自数据库的信息。
根据定义,列可能包含可空数据。
在这种情况下,您将考虑使用非原始类型 - 即整数。
但是,您可能希望使用基本类型+操作,因此将发生自动装箱/取消装箱(即 - 自动从整数转换为整数,具体取决于您的代码),这可能会损害性能。
总之,
尝试尽可能使用原语,对于可能需要保存Null值的情况使用非原语。
答案 2 :(得分:3)
尽可能使用基元,但在需要存储空值时不要使用它们
的示例:
Boolean isObject;
boolean isPrimitive;
int xPrimitive;
Integer xObject;
如果存储这些值,您会发现它们不相等。
// isObject == null
// isPrimitive == false
// xPrimitive == 0
// xObject == null
因此,最佳实践是对您的应用程序有意义的任何事情。优化时,您希望在对象上使用原语以减少内存开销 - 但前提是它不会与业务和逻辑要求冲突。
答案 3 :(得分:2)
通常最好使用基元而不是包装器。包装器非常适合
等方法Integer.toString(myInt);
此方法来自包装类,但myInt
是基元。在一般用途中,原语将完成你需要的所有工作
答案 4 :(得分:1)
我使用的是Primitive类型。
例如:
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。感谢