2012-04-10 36 views
1

我看到许多使用BufferedReader作为静态成员而不是实例成员的Java示例。这是否是一些最佳做法?什么时候应该或不应该这样做?静态BufferedReader与System.in

+2

请问我可以看到一些这样的例子吗?没有这样的约定。 – 2012-04-10 03:14:20

+0

在你使用它之后,使一个需要关闭的对象(比如'BufferedReader')'static'成为一个非常糟糕的主意。 – trutheality 2012-04-10 03:55:32

回答

0

我发现BufferedReader与System.in一起使用时不应该关闭的情况;因为在这种情况下,Java不允许重新打开它。在这种情况下,将此属性声明为静态是有意义的。

0

我不认为这是一种使BufferedReader成为静态成员的标准。这取决于你想要的行为。如果它在某种需要以静态方式访问其字段的Util类中,则将其设置为静态。否则,我认为将它作为一个实例或更好的方法级变量没有任何坏处。

例如,穆勇金,谁一般在春,Hibernate和Java写的教程的,提供了他在非静态的方式访问BufferedReaderthis例子。

0

我会假设静态用于比任何事情更清晰。我不知道有哪个标准说这样或那样做会更好。我想这取决于你需要以这种方式访问​​它的频率和原因。

2

这是一些最佳实践吗?

当然不是。相反它会在大多数情况下被认为是最差的做法。静态成员需要非常小心使用;成员只有在真正需要时才应该是静态的,经过适当的分析。

+0

我认为这些作者只是通过使用一些实用程序的静态例程来进行快捷操作,以便从'static void main'访问BufferedReader。 – 2012-04-10 04:17:54

+0

@AsadIqbal没有看到有关的代码,我不在乎推测。 – EJP 2012-04-10 04:23:44