什么是最佳做法?

时间:2012-09-22 07:51:03

标签: java oop javabeans

bean变量的最佳Java编码标准是什么:

1。我应该使用原始数据类型吗?
2.我应该使用包装类型吗?

或者两者都相同?

5 个答案:

答案 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。感谢