我看到许多使用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