[帖] 大神 请看 小弟我这里 是哪里出现的异常 集合有关问题
[求助帖] 大神 请看 我这里 是哪里出现的错误 集合问题
这些 代码 编译时期 没有任何问题
运行的时候 就出现了 问题
Exception in thread "main" java.lang.NullPointerException
at cn.loveay.Main.Person.compareTo(Person.java:50)
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)
at cn.loveay.Generic_泛型.GenericDemo3.main(GenericDemo3.java:22)
------解决思路----------------------
空引用错误,在第22行
package cn.loveay.Generic_泛型;
import java.util.Iterator;
import java.util.TreeSet;
import cn.loveay.Main.Person;
import cn.loveay.Main.Student;
import cn.loveay.Main.Worker;
public class GenericDemo3 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
TreeSet<Person> per=new TreeSet<Person>();
TreeSet<Worker> wor=new TreeSet<Worker>();
TreeSet<Student> stu=new TreeSet<Student>();
per.add(new Person("12",12));
per.add(new Person("13",13));
per.add(new Person("14",14));
wor.add(new Worker("12",12));
wor.add(new Worker("13",13));
wor.add(new Worker("14",14));
stu.add(new Student("12",12));
stu.add(new Student("13",13));
stu.add(new Student("14",14));
ss(per);
ss(wor);
ss(stu);
}
private static void ss(TreeSet<? extends Person> per) {
// TODO 自动生成的方法存根
Iterator<? extends Person> it=per.iterator();
while (it.hasNext()) {
Person person = it.next();
person.show();
}
}
}
package cn.loveay.Main;
public class Person implements Comparable{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
// TODO 自动生成的构造函数存根
}
public void show(){
System.out.println("Person"+name+":"+age+"\t");
}
public boolean equals(Object obj) {
// TODO 自动生成的方法存根
Person p=(Person)obj;
return this.name.equals(p.name)&&this.age==p.age;
}
public int hashCode() {
// TODO 自动生成的方法存根
return name.hashCode()+age;
}
public int compareTo(Object obj) {
// TODO 自动生成的方法存根
Person p=(Person)obj;
int t=this.age-p.age;
return t==0?this.name.compareTo(p.name):t;
}
}
package cn.loveay.Main;
public class Worker extends Person {
private String name;
private int age;
public Worker(String name2, int age2) {
this.name = name2;
this.age = age2;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public void show(){
System.out.println("Worker"+name+":"+age+"\t");
}
}
这些 代码 编译时期 没有任何问题
运行的时候 就出现了 问题
Exception in thread "main" java.lang.NullPointerException
at cn.loveay.Main.Person.compareTo(Person.java:50)
at java.util.TreeMap.compare(Unknown Source)
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)
at cn.loveay.Generic_泛型.GenericDemo3.main(GenericDemo3.java:22)
------解决思路----------------------
空引用错误,在第22行