每当我看到 Java 6 Stream 处理时,它几乎都是这样完成的:
public void myMethod() throws Exception
{
InputStream stream = null;
try
{
stream = connection.openConnection();
...
}
finally
{
if( stream != null )
{
stream.close();
}
}
}
但我不明白为什么这是必要的。这不会以同样的方式工作吗?
public void myMethod() throws Exception
{
InputStream stream = connection.openConnection();
try
{
...
}
finally
{
stream.close();
}
}
如果openConnection()
失败则stream
不会被分配,那么无论如何也没有什么可关闭的,不是吗?