程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了我不断收到 NullPointerException 但不知道为什么大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决我不断收到 NullPointerException 但不知道为什么?

开发过程中遇到我不断收到 NullPointerException 但不知道为什么的问题如何解决?下面主要结合日常开发的经验,给出你关于我不断收到 NullPointerException 但不知道为什么的解决方法建议,希望对你解决我不断收到 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 但不知道为什么全部内容,希望文章能够帮你解决我不断收到 NullPointerException 但不知道为什么所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。