2012-09-22 212 views
2

對於bean變量,Java的最佳編碼標準是什麼:最佳做法是什麼?

1.我應該使用原始數據類型嗎?
2.我應該使用包裝類型?

或者兩者都是一樣的?

+1

'bean'變量? – imulsion

+1

@imulsion:[tag:javabeans] –

+0

哦...我使用eclipse xD – imulsion

回答

11

這取決於。兩者都有一個很好的理由。

應儘可能優先考慮基元。它們成本較低,不可空,從而避免了很多潛在的錯誤。

可以使用包裝表示可空值(例如,在JPA中,表示數據庫中的可空列值或表示XML元素的可選元素或屬性的JAXB中)。

1

我使用了原始類型。

例如:

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。謝謝

+4

一個字符串不是原始類型。 –

+4

更好的答案是「使用原始類型*,除非你需要**能夠表示」無值「以及」*「。 –

+1

是的......那是真的 –

5

這取決於。
例如,您的bean可能會填充來自數據庫的信息。
根據定義,列可以保存可爲空的數據。
在這種情況下,您會考慮使用非原始類型 - 即Integer。
但是,您可能希望使用原始類型+操作,因此將進行自動裝箱/拆箱(即自動從整數轉換爲整數,具體取決於您的代碼),這可能會損害性能。

結束語
儘可能地嘗試使用原語,對於可能需要保留Null值的情況,使用非原語。

3

使用原語,你就可以了,但是當你需要存儲空值

例子沒有使用這些:

Boolean isObject; 
boolean isPrimitive; 

int xPrimitive; 
Integer xObject; 

如果存儲這些值,你會發現他們」不等於。

// isObject == null 
// isPrimitive == false 

// xPrimitive == 0 
// xObject == null 

因此,最佳實踐是適合您的應用程序的任何方法。優化時,您希望使用基元來減少內存開銷 - 但前提是它不會與您的業務和邏輯需求相沖突。

2

通常最好使用基元而不是包裝。包裝紙非常適合的方法,如

Integer.toString(myInt); 

此方法是從一個包裝類但myInt是一個原語。在一般的使用中,原語會做你需要的所有東西

相關問題