Ich habe das folgende Stück Code. SonarLint Sprichwort-Socket sollte im Block schließlich geschlossen werden.SonarLint Sprichwort Steckdose ist nicht geschlossen auch geschlossen
Aber ich habe es schon geschlossen. Ich habe beobachtet, eine weitere Sache ist hier: Ich bekomme das nur, wenn ich serverSocket.isClosed() Bedingung in schließlich wenn Bedingung habe. Wenn ich es entferne, ist das Problem gelöst.
Hier möchte ich wissen, was das Problem mit dieser Bedingung becoz von diesem SonarLint ist konnte nicht erkennen, die Steckdose schließen.
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();
}
}
}
danke für die Antwort.Aber es scheint, dass Sie meine Frage nicht richtig gelesen haben.Was ich sage ist, ja, es schließt, aber wenn extra Bedingung (serverSocket.isClosed()) in endlich blockieren, Aufgrund dieser SonarLint sagen Socket ist nicht geschlossen. Warum? –
@SravaniYapamanu Es ist nicht der 'isClosed()' Test (der sowieso überflüssig ist). Es ist das Fehlen dieses verschachtelten "finally" Blocks in Ihrem Code. – EJP
@ EJP..können Sie mir bitte zeigen, wie man es schreibt? –