Java 使用传统的finally块进行空检查以关闭资源
在调用开放资源的Java 使用传统的finally块进行空检查以关闭资源,java,Java,在调用开放资源的close()之前,网络上有一些检查null的例子 final InputStream in=…;//可以抛出IOException 试一试{ //做点什么。 }最后{ 如果(in!=null){//这确实是必需的吗? in.close(); } } 我总是不检查是否为空 final InputStream in=…;//可以抛出IOException 尝试{//当它到达这一行时,“in”永远不会为空,会吗? //做点什么。 }最后{ in.close();//不需要空检查,我
close()
之前,网络上有一些检查null
的例子
final InputStream in=…;//可以抛出IOException
试一试{
//做点什么。
}最后{
如果(in!=null){//这确实是必需的吗?
in.close();
}
}
我总是不检查是否为空
final InputStream in=…;//可以抛出IOException
尝试{//当它到达这一行时,“in”永远不会为空,会吗?
//做点什么。
}最后{
in.close();//不需要空检查,我错了吗?
}
…
可能会返回null
,这就是为什么会有一个检查
..
可能会返回null
,这就是检查的原因。如果在任何代码执行路径中资源都不可能变为null
,则不需要进行null检查
您所做的事情是正确的。如果在任何代码执行路径中资源都不可能变为null
,则不需要进行null检查
您做的是正确的。InputStream实现了AutoClosable,因此您可以使用语句。然后,您不必处理null,因为Java会为您这样做
try (InputStream in = ...) {
[some code]
}
InputStream实现了AutoClosable,因此您可以使用语句。然后,您不必处理null,因为Java会为您这样做
try (InputStream in = ...) {
[some code]
}
如果你要“catch”IOException
,你应该把作业放在一个try
块中,不是吗?@JinKwon使用…
的意思是什么,如果你要“catch”IOException
,它只是为了缩短键入时间,还是一个Java关键字,你应该把作业放在try
块中,不是吗?@JinKwon使用..
的意义是什么,只是为了缩短键入时间还是在Java中是一个关键字使用..
的意义是什么,只是为了缩短键入时间还是在Java中是一个关键字使用..
的意义是什么,它只是为了缩短键入时间,还是javaGood catch中的一个关键字。伙计!抢手货伙计!