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
, 그렇지 할당되지 않습니다 다음 닫기 어쨌든 거기에 아무것도?
동의합니다.
null
과제 에 대한 추가 단계 는 불필요하고 추합니다. stream
최종적으로 만들 수도 있습니다 .
내가 이와 같은 내용을 작성하는 유일한 경우는 정리해야하는 리소스가 두 개 이상 있고 (JDBC에서 많이 발생 함) 여러 중첩 된 try / finally 블록을 피하고 싶은 경우입니다 (하지만 일반적으로 해당 항목을 사용합니다. ).
그리고 Java 7에서는 try-with 구문을 사용할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다