2016-06-26 5 views
0

これは私のコードの一部です。ArrayList removeが動作しませんか?

private static List<Client> clients = null; 

public static boolean disconnectClient(Socket client) 
{ 
    try{ 
     System.out.println("[SYSTEM] : " + client.getInetAddress().getHostAddress() + "was disconnected !!"); 
     clients.remove(client); 

     return true; 
    }catch(Exception e){ 
     e.printStackTrace(); 
     return false; 
    } 
} 

クライアント切断コールこの機能と印刷メッセージ

console : "[SYSTEM] : 127.0.0.1was disconnected !!" 

しかしclients.size(IF)。戻り値1(0は答えです...)

どうすれば修正できますか?

+0

あなたの 'clients'リストは' Client'オブジェクトで作られていますが、削除すると 'Socket'オブジェクトが使われているので元のリストは変更されません。 –

+0

ああ... !!私の最高の間違いLOL –

答えて

1

あなたはremove()にソケットオブジェクトを渡しています。 あなたのリストはClientオブジェクトで構成されています。 代わりにクライアントオブジェクトを渡す必要があります。

関連する問題