2011-03-07 80 views
0

爲了儘量減少樣板代碼,我想要一個Socket和ServerSocket類,它們都實現了Closeable接口。實現一個可關閉的Socket/Serversocket

我已經看到了在Java 7中,插座和ServerSocket有可能實現可關閉的,所以我不能只是做類似:

public class ClosableSocket extends Socket implements Closeable {} 

和實施所需要的建設者?還是有更好的解決方案?我想要的是與Apache Commons IO IOUtil.closeQuietly(Closeable closeable)一起使用它。

回答

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