大佬教程收集整理的这篇文章主要介绍了我不断收到 NullPointerException 但不知道为什么,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有 2 个类,在我的 Driver.java 类中,当我尝试运行它时,它会在进入 2 个商业建筑后弹出:“线程“main”中的异常 java.lang.NullPointerException 在 CommercialBuilding.equals(CommercialBuilding.java:39) 在 Driver.main(Driver.java:8)"
(这是一个 CSCI 硬件,我坚持使用,希望得到任何帮助)
class CommercialBuilding {
private String address;
private double sqFootage;
privatE int units;
public CommercialBuilding(String add,double footage,int unit) {
add = address;
footage = sqFootage;
unit = units;
}
public String getAddress() {
return address;
}
public double getFootage() {
return sqFootage;
}
public int getUnits() {
return units;
}
@OverrIDe
public String toString() {
String s = getAddress() + " " + getFootage() + " " + getUnits();
return s;
}
@OverrIDe
public Boolean equals(Object obj) {
if(!(obj instanceof CommercialBuilding)) {
return false;
}
CommercialBuilding c = (CommercialBuilding)obj;
return (this.address.equals(c.address) && this.sqFootage == c.sqFootage && thiS.Units == c.units);
}
@OverrIDe
public int hashCode() {
int result = Double.hashCode(this.sqFootagE);
result = result * 31 + Integer.hashCode(units);
result = result * 31 + this.address.hashCode();
return result;
}
}
import java.util.ScAnner;
class Driver {
public static voID main(String[] args) {
CommercialBuilding c1 = createCommercialBuilding();
CommercialBuilding c2 = createCommercialBuilding();
System.out.println("c1 equals c2: " + c1.equals(c2));
}
static CommercialBuilding createCommercialBuilding() {
ScAnner kb = new ScAnner(system.in);
System.out.println("Please enter an address");
String x = kb.nextline();
System.out.println("Please enter Square footage");
double y = kb.nextDouble();
System.out.println("Please enter number of units");
int z = kb.nexTint();
CommercialBuilding com = new CommercialBuilding(x,y,z);
return com;
}
}
将您的 CommercialBuilding() 构造函数更改为以下内容并尝试一下:
public CommercialBuilding(String address,double sqFootage,int units) {
super();
this.address = address;
this.sqFootage = sqFootage;
thiS.Units = units;
}
最好使用编辑器生成构造函数,而不是自己键入
,问题来了:
class CommercialBuilding {
private String address;
private double sqFootage;
privatE int units;
public CommercialBuilding(String add,double footage,int unit) {
add = address;
footage = sqFootage;
unit = units;
}
所以你需要把它反过来:
private String address;
private double sqFootage;
privatE int units;
public CommercialBuilding(String add,int unit) {
address=add ;
sqFootage=footage;
units=unit;
}
将 add = address;
交换为 address=add;
将 footage = sqFootage;
交换为 sqFootage=footage;
将 unit = units;
交换为 units=unit;
工作正常:
以上是大佬教程为你收集整理的我不断收到 NullPointerException 但不知道为什么全部内容,希望文章能够帮你解决我不断收到 NullPointerException 但不知道为什么所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。