2016-01-21 150 views
-1

如何在每次程序啓動時都不會將「重置」設置爲默認值的Java變量中保存一個變量?Java中的靜態變量?

例如:

int counter; 
counter = counter + 1 

,現在我想「計數器」每一個節目開始時間是不同的。

我該怎麼辦?

+1

在程序退出(或變量操作)時將其序列化並在程序啓動時對其進行反序列化。 –

回答

3

不幸的是,對你而言,這不是什麼靜態手段

對於自己和他人,着想,瞭解靜態的手段,看看What does the 'static' keyword do in a class?

你所要求的是,在每次退出程序持續的值並加載它,當節目的一種方式開始。您沒有提供足夠的信息來確定您是否希望它位於運行該應用程序的每臺計算機上(即需要數據庫),或者該值是否僅存儲在本地計算機上。

對於只保留在本地機器上,你可以做的是使用Java屬性來保存退出時的值並在開始時加載該值。有關如何使用屬性,請參閱https://docs.oracle.com/javase/tutorial/essential/environment/properties.html,因爲有如何執行此操作的示例。請參見下面的話:

設置對象的屬性

下面的Java代碼執行 一節中所描述的前兩個步驟:加載默認的屬性和加載 想起屬性:

// create and load default properties 
Properties defaultProps = new Properties(); 
FileInputStream in = new FileInputStream("defaultProperties"); 
defaultProps.load(in); 
in.close(); 

// create application properties with default 
Properties applicationProps = new Properties(defaultProps); 

// now load properties 
// from last invocation 
in = new FileInputStream("appProperties"); 
applicationProps.load(in); 
in.close(); 

有對谷歌不少的成果,使用性質,其中之一是http://crunchify.com/java-properties-file-how-to-read-config-properties-values-in-java/這應該讓你開始..

或者,你可以像其他人所建議的那樣,序列化到一個文件並讀回,再次退出並啓動。

對於持久化數據庫以便任何有權訪問它的人都可以讀取該值,可以查看Java持久性API。 http://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html

+1

謝謝。有幫助。 – Doorian