为什么在这个类(StringWriter
,PrintWriter
)方法close
没有效果,因为它在javadoc中提到?为什么StringWriter中的close方法,PrintWriter没有效果?
我知道简单没有实现我想。但为什么?
为什么在这个类(StringWriter
,PrintWriter
)方法close
没有效果,因为它在javadoc中提到?为什么StringWriter中的close方法,PrintWriter没有效果?
我知道简单没有实现我想。但为什么?
StringWriter
上的close()
方法没有做任何事情,因为没有任何需要需要完成。
现在我们可以将其与其他类型的Writer
(etcetera)进行对比,这些类型需要在“关闭”时间进行操作。例如:
A BufferedWriter
需要刷新任何缓冲的输出......以便它不会丢失。
A FileWriter
需要在打开的打开文件的本机文件句柄上执行关闭。这需要完成,因为如果这些句柄未关闭,JVM将用完,“打开”将停止工作。
但是StringWriter
不需要做任何事情......所以它不需要。
的StringWriter::close()
方法的存在,因为它是在其超实际执行。
该方法存在于超类中使它(更多)可用于多态上下文中。如果close()
没有在Writer
中实现,那么会有两种类型的Writer
(可关闭和不可关闭),并且使用编写器的应用程序代码需要以不同方式处理它们。
事实上,应用程序可以关闭全部Writer
对象,知道正确的事情将会完成。在某些情况下,JIT编译器可以优化掉StringWriter::close()
的呼叫。在其他情况下,从性能角度来看,对无操作方法的调用的开销很少有意义。
你想对'StringWriter'有什么影响? 'PrintWriter.close()'*具有*效果,顺便说一句。 –