为了最小化样板代码,我想要一个Socket和ServerSocket类,它们都实现了Closeable接口。
我已经看到在Java 7中,Socket和ServerSocket很可能实现了Closeable,所以我不能只做类似的事情:
public class ClosableSocket extends Socket implements Closeable {}
并实现所需的构造函数?或者有更好的解决方案吗?我想要的是将它与Apache Commons IO IOUtil.closeQuietly(Closeable closeable)
结合使用。
答案 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
}
}