equals重写,空指针异常求解 构造方法中没有给变量赋值public Person(int age, String name) { this.name = name; this.age = age; }这样写就可以了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你重写equals 怎么还在红色代码里调用equals,把equals改成==就对了。还有重写equals没这么简单,还要重写hasCode。相关的查一下。 //重写equals()方法 @Override public boolean equals(Object obj) { if(obj==null){ return false; } if(obj==this){ return true; } if (obj instanceof Person) { Person person = (Person) obj; return this.age == person.age && this.name == person.name ; } return false; }注意:重写了equals()方法,必须要重写hashCode()方法 public Person(){}public Person(int age, String name){ this.age = age; this.name = name;} 构造方法里面没把name 赋值,导致name 是null, null.equals()肯定报空指针 1.构造器没给属性(实例变量)赋值2.还有equlas方法没有考虑到参数是null的情况下,应该这样写if(obj == null){return false;} int 有默认值,String没默认值,为Null的时候报空指针错误。 如果我不用HashMap,有必须重写hashCode的理由吗? 构造方法没有赋值,还有重写equals()方法,得重写hashCode()方法,你的queals()方法缺少一个空指针判断、改好了再试试吧。 Person 的name 是String 对象,需要对所有成员对象做null判断,如果两个对象对应的成员对象都是null,那就可以认为equal 上面的哥们说的是了,构造函数 Person(int age,String name)中没有赋值给 name属性(age可以不管,因为它是基本数据类型).但是你在主函数中,红色部分调用了 Perosn中重写的 equals方法,equals方法中使用了 name调用方法,但是name如果没有制定赋值的话,默认是null(因为name是String'属于引用类型').NullPointerException就是 null值的引用调用方法引起的.说的很清晰了. java socket编程初学的问题 VC 调用JAVA 急问:不知道出了什么问题,有关java空指针问题? 一个有趣的问题 有两个编程题 各位大哥帮看看 绝对给分 信誉第一 很重要的问题呀1 那位可以带我java,我是初学者 问Java程序使用打印机时的中文问题 如何使得textfield里输入的字母都为大写的! 用Graphics2D的DrawLine画线时怎么设定线的粗细? 求坐标 怎样输出这三个i值?
@Override
public boolean equals(Object obj) {
if(obj==null){
return false;
}
if(obj==this){
return true;
}
if (obj instanceof Person) {
Person person = (Person) obj;
return this.age == person.age && this.name == person.name ;
}
return false;
}
注意:重写了equals()方法,必须要重写hashCode()方法
public Person()
{
}public Person(int age, String name)
{
this.age = age;
this.name = name;
}
2.还有equlas方法没有考虑到参数是null的情况下,
应该这样写
if(obj == null){
return false;
}
如果我不用HashMap,有必须重写hashCode的理由吗?
如果两个对象对应的成员对象都是null,那就可以认为equal
构造函数 Person(int age,String name)
中没有赋值给 name属性(age可以不管,因为它是基本数据类型).
但是你在主函数中,红色部分调用了 Perosn中重写的 equals方法,equals方法中使用了 name调用方法,但是name如果没有制定赋值的话,默认是null
(因为name是String'属于引用类型').
NullPointerException就是 null值的引用调用方法引起的.
说的很清晰了.