Реализация закрываемого сокета / Serversocket - PullRequest
0 голосов
/ 07 марта 2011

Чтобы свести к минимуму стандартный код, я хотел бы иметь класс Socket и ServerSocket, которые оба реализуют интерфейс Closeable.

Я видел, что в Java 7 Socket и ServerSocket могут реализовывать Closeable, поэтому я не могу просто сделать что-то вроде:

public class ClosableSocket extends Socket implements Closeable {}

и реализовать нужные конструкторы? Или есть лучшие решения? Я хочу использовать его совместно с Apache Commons IO IOUtil.closeQuietly(Closeable closeable).

1 Ответ

3 голосов
/ 07 марта 2011

Я бы хотел что-то вроде

public static void closeQuietly(Object object) {
    try {
        if (object instanceof Closeable)
            ((Closeable)object).close();
        else if (object instanceof Socket)
            ((Socket)object).close();
        else if (object instanceof ServerSocket)
            ((ServerSocket)object).close();
        else 
            // use reflections to call close() if you must.

    } catch (IOException ignored) {
        // ignored
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...