Java 带System.in的静态缓冲读取器

Java 带System.in的静态缓冲读取器,java,Java,我看到许多Java示例使用BufferedReader作为静态成员而不是实例成员。这是最佳实践吗?我什么时候该做还是不该做 我不认为将BufferedReader作为静态成员是一种标准。这取决于你想要的行为。如果它在某种类型的Utils类中,需要以静态方式访问其字段,那么将其设置为静态。否则,我认为将其作为实例或更好的方法级变量没有任何害处 例如,Yong Mook Kim编写了大量关于Spring、Hibernate和Java的教程,他提供了一个以非静态方式访问BufferedReader的示

我看到许多Java示例使用BufferedReader作为静态成员而不是实例成员。这是最佳实践吗?我什么时候该做还是不该做

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


例如,Yong Mook Kim编写了大量关于Spring、Hibernate和Java的教程,他提供了一个以非静态方式访问
BufferedReader
的示例。

我认为静态是为了清晰起见而使用的。我不知道有哪一个标准说这样或那样做更好。我想这取决于你需要以这种方式访问它的频率和原因

这是最佳实践吗


当然不是。相反,在大多数情况下,这将被视为最糟糕的做法。需要非常小心地使用静态构件;经过适当的分析,成员只有在真正需要时才应该是静态的。

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

我可以看一些这样的例子吗?没有这样的约定。实际上,在使用对象后创建一个需要关闭的对象(如
BufferedReader
)是一个非常糟糕的主意
static
。我认为那些作者只是走捷径,使用一些实用的静态例程从“static void main”访问BufferedReader。@AsadIqbal没有看到相关的代码,我不想猜测。