JAVA에서 이 경고메시지의 의미는?..
글쓴이: sadrove / 작성시간: 일, 2004/10/03 - 11:09오후
이클립스에서 아래와 같은 소스에서
public class Menus extends JFrame { //내부프레임배치를위한컴포넌트 protected JDesktopPane desktop = new JDesktopPane(); //두부분나눠주는 split protected JSplitPane spBrowser; --------생략---------
public class Menus extends JFrame 이부분에 아래와 같은 경고가 떳습니다..
Quote:
The serializable class Menus does not declare a static final serialVersionUID field of type long
이게 무슨 의미인가요..?...
에고고고...
좋은 밤 되세요..
Forums:
음... 이상하네요. 원래 그 경고의 의미는 Serializable을 구
음... 이상하네요. 원래 그 경고의 의미는 Serializable을 구현한 클래스의 경우 임의의 serialVersionUID 정적인 필드를 정의해 주는 것이 좋다는 뜻입니다.
보통 클래스를 직렬화 한 자료는 해당 클래스의 구조가 변경되면 다시 객체로 변환할 수 없습니다. 하지만 serialVersionUID를 직접 지정한 클래스의 경우는 해당 필드의 값만 변하지 않으면 동일한 클래스로 간주하고 변환을 시도 합니다. 자세한 내용은 자바의 직렬화 지원에 대한 부분을 인터넷에서 검색해보시면 됩니다.
그런데 단순히 Serializable를 구현한 클래스를 상속한 것 자체로 저런 경고가 뜨는 건 좀 이해하기 어렵네요.
----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...
public static long serialVersionUID = <<longnumber>>;
윗분 말씀에 동감합니다.
명시적으로 public static long serialVersionUID = <>; 필드를 정의해 주시던지 해당 class를 직렬화 하지 않을 경우에는 eclipse 내부설정으로 경고메세지를 dp 안하실수도 있습니다.
prefernces -> Compiler -> Errors/Warnings -> Potential programming
problems 에서 설정하실수 있을겁니다.
오늘도 For() 와 If()로 나의 하루는 시작되고 끝난다.
--오늘도 For() 와 If()로 나의 하루는 시작되고 끝난다.
댓글 달기