문제

심지어 가능합니까?나중에 파일에서 읽을 수 있어야 합니다.내가 하려는 일의 예(그러나 E는 직렬화 가능하지 않기 때문에 작동하지 않습니다):

private <E> void writeEvent(ObjectOutputStream out,E obj) throws IOException{
        out.writeObject(new custEvent(obj));
        }

class custEvent<E> implements Serializable{
        private E obj;
        private Date date;

        public custEvent(E obj) {
            this.obj=obj;
            date=new Date();
        }
    }
도움이 되었습니까?

해결책

일반 매개변수화에 상한을 사용하는 것이 어떻습니까? E?

다음과 같이:

private <E extends Serializable> void writeEvent(ObjectOutputStream out,E obj) {
  // etc.
}

여기서 혼란은 다음과 같습니다 Serializable 인터페이스이고 클래스에 의해 "확장"될 수 없습니다(그러나 ~할 수 있다 Thomas가 언급한 것처럼 다른 인터페이스에 의해 확장될 수 있지만 상한은 여전히 ​​유효합니다.

물론 이는 귀하의 E의지 필요 구현 Serializable, 또는 확장하는 인터페이스를 구현하십시오. Serializable.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top