2013-03-12 1 views
0

I이 한 클래스 벡터 가변 상태를 갖는 그것 세터 기능는 속성

class State implement Serializable{ 
    private Vector state; 
    //its getters and setters 
} 

에서 상태의 벡터리스트를 설정한다 Stateclass B 세션에서 State 클래스를 가져온 다음 동일한 State 개체에 할당 한 다음이 클래스에 writeObject 메서드를 사용합니다. Vector 그 구현 않기 때문에

난이 오류가있는 이유 사람이 나를 도와주세요
class B { 
     State _state = (State) session.getAttribute("_stateKey"); 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     ObjectOutputStream oos = new ObjectOutputStream(baos); 
     oos.writeObject(_state); // at this line i am getting java.io.NotSerializableException 
    } 

...

+0

'상태'에 어떤 유형의 객체를 저장하고 있습니까? 이러한 유형 중 하나가 직렬화 가능하지 않습니까? –

+0

당신은'벡터'에 무엇을 넣고 있습니까? 당신이 거기에 넣는 객체는 역시'Serializable'이어야합니다. 그리고'Vector'는 레거시 컬렉션 클래스이기 때문에 사용하지 말아야합니다. 대신에'ArrayList'를 사용하십시오. 또한 제네릭을 사용하십시오. – Jesper

+0

NotSerializableException은 어떤 클래스가 범인인지 정확하게 알려야합니다. –

답변

2

당신의 클래스는 Serializable Interface 구현해야합니다. 문제는 고객님의 Class입니다.

+0

또한 클래스 B에 Serializable 인터페이스를 구현했지만 여전히 동일한 문제가 발생했습니다. – user1782009

+0

그러면 직렬화 할 수없는 다른 객체가 있음을 의미합니다. – SudoRahul

+0

벡터의 객체가 ** Serializable ** 인터페이스를 구현하지 않는 것처럼 보입니다. 그것은 클래스 B와 아무 상관이 없습니다 – spiritwalker

0

감사합니다. 나는이 문제를 해결했다. 한 클래스에서 Serializable Interface를 구현하지 않았고 목록에 넣고있는 값 하나를 얻었습니다. 귀하의 제안에 감사드립니다