2013-04-23 39 views
1

我有Item item;其中有getName()getter。我需要在某個循環中訪問item.getName()。每次在循環中調用item.getName()是更好的方法,還是將它保存在其他變量中,並使用該變量並有區別?將getter值保存在變量中而不是多次調用會更好嗎?

例如: Item item;

String itemName=item.getName(); 

for(int i=0; i< itemArray.size();i++){ 

    itemArray.get(i).setName(itemName); 
} 

for(int i=0; i< itemArray.size();i++){ 

    itemArray.get(i).setName(item.getName()); 
} 
+0

我沒有與價值變動的任何probles,那不是我的問題。 – Vahan 2013-04-23 11:27:57

+0

這個新編輯的代碼會將您數組中的所有項目設置爲相同的名稱。如果這是你想要的,最好使用一個變量並且一次調用'getName()',而不是每次迭代調用'getName()'。雖然這樣的微調並不是那種從用戶的角度來看是不明顯的 – 2013-04-23 11:37:55

+0

這不是我所需要的,而是一些這樣的例子。我知道這並不明顯。但是,哪種風格更好,因爲添加變量也有其缺點。 – Vahan 2013-04-23 11:43:35

回答

1

當您使用item.getName(),您將得到總是當前新值。在迭代時將其保存到其他變量中可能不會看到更改。如果這是你的意圖它確定並宣佈它爲最終的,因爲它將是線程安全的。 否則我不認爲這將是一個很大的性能問題。繼續使用吸氣劑。

2

如果你要在你的循環再次重新分配item一遍又一遍,然後你需要使用item.getName(),其他你能值只存儲在一個局部變量,並在循環中使用它。如果你不會改變它的價值,那麼你也可以讓它變成final

E.g:

final String name = item.getName(); 
while(comdition){ // some loop 
    // something involving name. But not modifying it. 
} 
0

你會喜歡哪一個?

String itemName; 

for(int i=0;i<itemArray.size();i++){ 
    itemName=itemArray.get(i).getName(); 
    System.out.println(itemName); 
} 

for(int i=0;i<itemArray.size();i++){ 
    System.out.println(itemArray.get(i).getName); 
} 
+0

好吧,我看不出爲什麼第一個例子會更好。第二個例子是更好的可讀性和性能(雖然它不會有任何明顯的性能差異) – 2013-04-23 11:32:47

+0

看我的編輯,你錯了解我的問題 – Vahan 2013-04-23 11:37:00

相關問題