我看了一会终于明白了,问题在这里Student(String name,int age)
{
name=this.name;
age=this.age;
}
这种写法是大忌,你这等于把this.name赋给了传进来的参数name,拿第一个来说
传进来的是lisi-1,而本来this.name的初始化为null,这时候第一个Person对象的名字为null了,年龄也是一样的道理,
当Person的名字和年龄都是空的时候,你传入集合时,集合自动调用hashCode方法去返回哈希值,但是发现name和age都是空
所以这是时发生空指针异常NullPointerException,,你把构造函数这样写就ok了:
Student(String name,int age)
{
this.name=name;
this.age=age;
}
而且这是标准写法,不能改的 |