☕ 기본 환경: IDE: Eclipse, Language: Java
발생 Exception
Java에서 다음 Source Code를 실행할 경우,
package member;
import java.io.Serializable;
public class MemberDTO implements Comparable<MemberDTO>, Serializable {
private String name;
private int age;
private String phone_num;
private String address;
public MemberDTO() {}
public MemberDTO(String name, int age, String phone_num, String address) {
this.name = name;
this.age = age;
this.phone_num = phone_num;
this.address = address;
}
public void setName(String name) {this.name=name;}
public void setAge(int age) {this.age=age;}
public void setPhone_num(String phone_num) {this.phone_num=phone_num;}
public void setAddress(String address) {this.address=address;}
public String getName() {return name;}
public int getAge() {return age;}
public String getPhone_num() {return phone_num;}
public String getAddress() {return address;}
@Override
public String toString() {
return name + "\t"
+ age + "\t"
+ phone_num + "\t"
+ address;
}
@Override
public int compareTo(MemberDTO mDTO) {
return name.compareTo(mDTO.getName());
}
}
package member;
import java.util.List;
import java.util.Scanner;
import java.util.Comparator;
import java.util.Collections;
public class MemberNameAsc implements Member {
Scanner scan = new Scanner(System.in);
@Override
public void execute(List<MemberDTO> list) {
// Comparable
Collections.sort(list);
System.out.println("\n이름\t나이\t핸드폰\t주소");
for(MemberDTO mDTO : list) {
System.out.println(mDTO + " ");
}
} // execute
} // class
⭐ java.io.InvalidClassException 발생
Exception 원인
MemberDTO에서 comparator로 정렬된 파일을, Comparable을 적용시켜 해당 파일을 불러올 경우 발생
(저장할 때 사용한 serialVersionUID과 load할 때 사용한 serialVersionUID이 상이하여 발생)
해결 방법
사용할 정렬 기준(Comparable, Comparator)으로 파일을 저장한 후 같은 기준에서 해당 파일을 불러와야 함
참고 자료
📑 컴퓨터 학원 동기
'Java > Java with Error' 카테고리의 다른 글
[해결 방법] java.lang.Error (0) | 2023.02.20 |
---|---|
[해결 방법] java.lang.ArrayIndexOutOfBoundsException (0) | 2023.02.19 |
[해결 방법] java.io.NotSerializableException (0) | 2023.02.17 |
[해결 방법] java.util.IllegalFormatPrecisionException (0) | 2023.02.17 |
[해결 방법] java.util.ConcurrentModificationException (0) | 2023.02.16 |