Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Nullpointerexception和无编译错误。找不到原因_Java_Oop_Arraylist - Fatal编程技术网

Java Nullpointerexception和无编译错误。找不到原因

Java Nullpointerexception和无编译错误。找不到原因,java,oop,arraylist,Java,Oop,Arraylist,几个小时以来,我一直在努力解决这个问题。包括查看前面回答的问题。我对Java非常陌生,基本上是几天前开始的 它不断给我Register.läggTillhundnyHund之间的NullPointerException;在一等舱和百分之一百的登记册上;第二节课 我不知道是什么导致了他们。有人有想法吗 代码完成后的目的是使用第一个类作为主程序,将第三个类中的对象添加到第二个类中的列表中 谢谢你的帮助! 奥斯卡 一等干线 public class testning { public sta

几个小时以来,我一直在努力解决这个问题。包括查看前面回答的问题。我对Java非常陌生,基本上是几天前开始的

它不断给我Register.läggTillhundnyHund之间的NullPointerException;在一等舱和百分之一百的登记册上;第二节课

我不知道是什么导致了他们。有人有想法吗

代码完成后的目的是使用第一个类作为主程序,将第三个类中的对象添加到第二个类中的列表中

谢谢你的帮助! 奥斯卡

一等干线

public class testning {

    public static void main(String[] args) {
        Hund nyHund = new Hund("Daisy", 13, "labrador", 22.3);
        System.out.println(nyHund.toString());
        System.out.println(nyHund);
        Register.läggTillHund(nyHund);      

    }

}
二等舱:

import java.util.ArrayList;

public class Register {


    private static ArrayList<Hund> hundRegister;



    public static void läggTillHund(Hund nyHund){
        hundRegister.add(nyHund);
        System.out.println(nyHund);
        }



         public Register(){
             hundRegister = new ArrayList<Hund>();
    }


}

您正在访问静态方法。在这种情况下,构造函数从不工作。使用私有静态ArrayList hundRegister=新建ArrayList;并删除构造函数。要查看发生了什么,请添加System.out.println行进行构造,您将看到它永远不会工作

您向我们提供了所有代码,但没有异常堆栈跟踪。异常堆栈跟踪是诊断您的问题的关键。我认为副本没有多大帮助。他所要做的就是改变私人静态ArrayList hundRegister;到私有静态ArrayList hundRegister=新ArrayList;正如我所说,这是一个全新的领域。但这是你需要的吗?Register.läggTillHundRegister.java:11 at testning.maintestning.java:8线程主java.lang.NullPointerException中的异常hundRegister变量仅在Register类构造函数中初始化,但您从未调用此构造函数,因为您只是在此类上使用静态方法:läggTillHund。谢谢大家!我现在明白我的错误了@对不起。我使用的是android应用程序,错误地发布了两次。
public class Hund {

    private String namn;
    private int ålder;
    private double vikt;
    private String ras;

    public Hund(String hundnamn, int hundålder, String hundras, double hundvikt) {
        this.namn = hundnamn;
        this.ålder = hundålder;
        this.ras = hundras;
        this.vikt = hundvikt;
    }

    public String getNamn() {
        return namn;
    }

    public int getÅlder() {
        return ålder;
    }

    public double getSvanslängd() {
        if ("tax".equals(ras)){
            return 3.7;
        }else{
            return ((vikt*ålder)/10);
        }
    }

    public String toString() {
        return namn + "\n" + ålder + "\n"+ras+"\n"+vikt+"\n"+getSvanslängd();
    }
}