实现一个可关闭的套接字/ Serversocket

时间:2011-03-07 13:09:32

标签: java sockets

为了最小化样板代码,我想要一个Socket和ServerSocket类,它们都实现了Closeable接口。

我已经看到在Java 7中,Socket和ServerSocket很可能实现了Closeable,所以我不能只做类似的事情:

public class ClosableSocket extends Socket implements Closeable {}

并实现所需的构造函数?或者有更好的解决方案吗?我想要的是将它与Apache Commons IO IOUtil.closeQuietly(Closeable closeable)结合使用。

1 个答案:

答案 0 :(得分:3)

我会喜欢

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
    }
}