1、不兼容的数据类型之间发生转换
2、SQL映射错误可能报此异常
3、TreeSet集合是有序集合,如果使用自定义类型,需要在创建集合时指定排序方式,否则无法排序,运行报错
错误:
public static void main(String[] args) {
Preson p1 = new Preson("a", 1);
Preson p2 = new Preson("b", 2);
Preson p3 = new Preson("d", 3);
Preson p4 = new Preson("c", 3);
Preson p5 = new Preson("e", 4);
TreeSet<Preson> p = new TreeSet<>(){};
p.add(p1);
p.add(p2);
p.add(p3);
p.add(p4);
p.add(p5);
System.out.println(p);
}
正确:
public static void main(String[] args) {
Preson p1 = new Preson("a", 1);
Preson p2 = new Preson("b", 2);
Preson p3 = new Preson("d", 3);
Preson p4 = new Preson("c", 3);
Preson p5 = new Preson("e", 4);
TreeSet<Preson> p = new TreeSet<>(new java.util.Comparator<Preson>() {
@Override
public int compare(Preson o1, Preson o2) {
if(o1.getId() != o2.getId()) {
return o1.getId() - o2.getId();
} else {
return o1.getName().hashCode() - o2.getName().hashCode();
}
}
}){};
p.add(p1);
p.add(p2);
p.add(p3);
p.add(p4);
p.add(p5);
System.out.println(p);
}