2011-03-07 11 views
0

상용구 코드를 최소화하려면 Closeable 인터페이스를 구현하는 Socket 및 ServerSocket 클래스가 필요합니다.닫기 소켓/서버 소켓 구현

나는 자바 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 
    } 
} 
같은 것을 할 것이다