假設2種不同的方法 - 一種是靜態的,一種是非靜態的 - 需要一個實例變量。Java/C的類內實例變量的使用情況#
該變量在方法中使用3-5次不同時間進行比較。
變量不會以任何方式更改。
此外,變量的類型 - String,Colection,Collection等在編碼方式上有所不同。
在私有方法(靜態和非靜態)中使用實例變量的最佳/正確方法是什麼?
- 通作爲方法參數
- 本地存儲利用該方法來獲取值 - this.getClaimPropertyVertices();
- 通過獲取值本地存儲 - this.claimPropertyVertices;
- 在方法
直接使用實例變量當創建一個局部變量來存儲值將「最終」關鍵字提供任何優勢,如果變量將不被改變。
編輯1:根據評論,我添加其他信息 該值不能在方法中本地創建。它必須來自班級或其他訪問類的方法。
基於回答的我的解決方案:
基於@EricJ的回答。和@Jodrell。我選擇了1,並將其創建爲私有靜態方法。我還發現一些細節here來支持這一點。
靜態方法無法訪問實例字段,句點。 –
它確實取決於使用變量的方法的上下文。將價值傳入或可以在本地創建是否有意義?不知道方法的背景,很難回答這些問題。另外...這味道像早期的微型優化... eeeeeviiiillllll。而一個靜態方法只能訪問一個靜態變量。 –
@MattBall謝謝。我從來沒有這樣做過,但想要這樣做,以便我能夠了解/瞭解是否會有差異 –