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