我看到許多使用BufferedReader作爲靜態成員而不是實例成員的Java示例。這是否是一些最佳做法?什麼時候應該或不應該這樣做?靜態BufferedReader與System.in
回答
我發現BufferedReader與System.in一起使用時不應該關閉的情況;因爲在這種情況下,Java不允許重新打開它。在這種情況下,將此屬性聲明爲靜態是有意義的。
我不認爲這是一種使BufferedReader
成爲靜態成員的標準。這取決於你想要的行爲。如果它在某種需要以靜態方式訪問其字段的Util類中,則將其設置爲靜態。否則,我認爲將它作爲一個實例或更好的方法級變量沒有任何壞處。
例如,穆勇金,誰一般在春,Hibernate和Java寫的教程的噸,提供了他在非靜態的方式訪問BufferedReader
this例子。
我會假設靜態用於比任何事情更清晰。我不知道有哪個標準說這樣或那樣做會更好。我想這取決於你需要以這種方式訪問它的頻率和原因。
這是一些最佳實踐嗎?
當然不是。相反它會在大多數情況下被認爲是最差的做法。靜態成員需要非常小心使用;成員只有在真正需要時才應該是靜態的,經過適當的分析。
我認爲這些作者只是通過使用一些實用程序的靜態例程來進行快捷操作,以便從'static void main'訪問BufferedReader。 – 2012-04-10 04:17:54
@AsadIqbal沒有看到有關的代碼,我不在乎推測。 – EJP 2012-04-10 04:23:44
- 1. 關閉的BufferedReader和System.in
- 2. Scanner inp = new Scanner(new BufferedReader(new InputStreamReader(System.in)));
- 3. 與System.in
- 4. 從System.in BufferedReader輸入嘗試拋出異常
- 5. 如何使用BufferedReader從System.in中讀取整數?
- 6. 靜態與非靜態類
- 7. Java + readline與BufferedReader
- 8. 與靜態類
- 9. 與靜態URL
- 10. 靜態變量與靜態屬性
- 11. 泛型方法:靜態與非靜態
- 12. 鏈接靜態庫與靜態庫
- 13. 靜態與非靜態變量C++
- 14. JavaFX的靜態與非靜態
- 15. 靜態與非靜態堆棧
- 16. 靜態與非靜態方法2
- 17. 方法參考靜態與非靜態
- 18. 靜態與非靜態方法
- 19. 靜態工具操作的靜態類與靜態結構?
- 20. 靜態與動態類型
- 21. 動態SQL與靜態SQL
- 22. 與靜態資源
- 23. JavascriptMVC:findAll與靜態json
- 24. 靜態值與svm.SVR.predict()
- 25. 與EXTERN靜態表
- 26. 與靜態數據
- 27. JFrame凍結與不同的System.in
- 28. Java的DataInputStream所使用與System.in
- 29. 問題與環路和BufferedReader
- 30. 意外的java.util.NoSuchElementException與BufferedReader
請問我可以看到一些這樣的例子嗎?沒有這樣的約定。 – 2012-04-10 03:14:20
在你使用它之後,使一個需要關閉的對象(比如'BufferedReader')'static'成爲一個非常糟糕的主意。 – trutheality 2012-04-10 03:55:32