0
私は次のコードを持っています。 SonarLintはソケットがfinallyブロックで閉じられるべきだと言っています。SonarLintがソケットが閉じていないと言っています
しかし、私はすでにそれを閉じています。 もう1つのことがわかりました。私は、条件が最後の場合にserverSocket.isClosed()条件がある場合に限り、これを取得します。私がそれを取り除くと、問題は解決されます。
ここで私は、この状態の問題が、そのsonarLintのbecozがソケットクローズを認識できないことを知りたいと思います。そのための
ServerSocket serverSocket = null;
try
{
serverSocket = new ServerSocket(5555);
}
catch(IOException e)
{
e.printStackTrace();
}
finally
{
if(serverSocket != null && !serverSocket.isClosed())
{
try
{
serverSocket.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
あなたは私の質問を正しく読んでいないようです。私は言っていますが、確かに閉鎖していますが、最後のブロックに余分な条件(serverSocket.isClosed())があると、このsonarLintソケットどうして? –
@SravaniYapamanu isClosed()テストではありません(とにかく冗長です)。これはあなたのコードでこのネストされた 'finally'ブロックの欠如です。 – EJP
@ EJP..それを書く方法を教えてください。 –