попытка с ресурсом не закрывает сокет - PullRequest
0 голосов
/ 28 мая 2018

Я использую Java 1.8, хотя try-with-resource хорошо работает в других частях приложения, но в одном классе, где я написал так:

try(Socket sock = socket != null ? socket : new Socket()){ //Other implementation}

Это говорит об утечке ресурсов.Любая подсказка?

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Ваш код в принципе не проблема, поэтому предупреждение, которое выдает Eclipse, можно игнорировать.

Однако ваш код будет намного понятнее, если вы напишите его так:

if(null != socket){
    try(Socket sock =  new Socket()){

    }catch(Exception e){

    }
}
0 голосов
/ 28 мая 2018

Насколько я понимаю из сообщения, есть опция, которую Socket не может инициализировать, если сокет не равен NULL и не назначенный объект не может закрыться.

...