我曾經爲我的應用程序提供了自定義首選項類。對於我的下一個愛好項目,我想切換到Preferences API。但put和get函數需要一個默認值,我不想在整個源文件中傳播默認值。即使我的項目很小,我無法想象在整個源代碼中都會更改默認值。你們如何使用api?我想在另一個類中包裝首選項api,但是使用API的重點是什麼,因爲它只消除了將文件保存到磁盤的負擔,而使用序列化並不那麼困難?我錯過了這個觀點嗎?封裝Java首選項API
回答
將所有的默認設置保存在一個類中是不是很困難,以至於它們不會亂丟你的代碼?
我在最近的項目中使用了commons configuration。我研究過Java Preferences API,但我喜歡Commons項目的靈活性。而且您不必指定默認值!
你在這裏混合了一些概念。代碼中給出的默認值應該特定於當地情況,作爲「合理的默認值」。如果您想擁有應用程序範圍的默認值,那麼您需要一個首選提供程序,該提供程序允許您同時掛接默認首選項和重疊的用戶首選項。本身可能是一個有價值的項目。
噢,「合理的默認值」是避免不需要配置的好方法,但允許用戶或打包者在需要時提供更好的值。
@comment,我想我明白了。
'本地情況'我的意思是在代碼的上下文中。對於你的GUI,你需要一個顯示值來代表線程正在使用的值。因此我會使用Worker.DEFAULT_TIMEOUT之類的東西。您的工作人員將在內部使用與默認值相同的值。通過這種方式,您可以在設置工作人員的行爲時檢索配置的值或工人的默認值。
您可以將默認值放入您在.jar文件(或專用類或具有常量的接口)中捆綁的.preferences文件中。
我使用它作爲窗口位置/大小,記住選擇文件的默認文件夾,上次打開的文件和這樣的瑣事。我可以想到一些有趣的事情,你可以通過偏好API「免費」獲得:
- 以OS推薦的方式做事;操作系統可能不允許您在應用程序文件夾中寫入「設置文件」,並且用戶不喜歡詢問他們想要保存設置的磁盤上的位置,並且您不希望爲每個平臺實現您的定製邏輯
- 您的數據保存爲單獨
- 每個OS用戶的方式,讓用戶的數據,即使你的應用被卸載(或在升級過程中)
- 不需要數據庫或訪問文件系統
另外,我不喜歡序列化,不建議這樣做。序列化意味着在新版本的應用程序中更改課程時必須小心。
那麼你可能想要通過實施AbstractPreferences
完全控制首選項應該如何跟隨你想要的存儲。你可以在這裏看到一個基於Linux實現:
http://www.docjar.com/html/api/java/util/prefs/FilePreferencesImpl.java.html
祝你好運!
- 1. 封裝API的選項
- 2. 首選項Libgdx Java
- 3. Java:理解首選項
- 4. Java首選項管理器
- 5. 可選API封裝周圍swift
- 6. Java首API
- 7. Java數組封裝
- 8. 封裝在Java中
- 9. CF首選項/庫/首選項
- 10. 顯式封裝代表仍然首選C#中的事件嗎?
- 11. Spring REST API:返回默認首選項
- 12. Automator首選項
- 13. Java首選項本地安全存儲
- 14. Java首選項和國際化(i18n)
- 15. Java Swing Mac OSX首選項菜單
- 16. Java中的位封裝
- 17. Java Graphics2D drawString封裝文本
- 18. 共享首選項
- 19. 首選項活動
- 20. Android ==>首選項?
- 21. 共享首選項
- 22. 使用API設置Vimeo嵌入首選項使用API
- 23. 首選項和複選框
- 24. mysql - 選擇「if」首選項
- 25. 帶有封裝項目的Android項目
- 26. Android首選項 - 替換首選項功能
- 27. 無法使用統一首選項保留我的首選項
- 28. 列表首選項和共享首選項
- 29. 從xml首選項佈局中獲取首選項
- 30. Android中首選項活動中的數字首選項