如何解决线程“main”中的异常java.lang.NullPointerException错
参见英文答案 >
What is a NullPointerException,and how do I fix it?????????????????????????????????????12个
我在Java程序中遇到问题.线程“main”中的异常 java.lang.NullPointerException at twoten.TwoTenB.<init>(TwoTenB.java:29) at javapractice.JavaPractice.main(JavaPractice.java:32) Java Result: 1 是我得到的错误.我真的可以使用一些帮助,因为我在这个地方被困了几个小时…… package twoten; import java.util.Scanner; public class TwoTenB { public TwoTenB() { double percentage; double a[] = null; double total = 0; double var; System.out.print("tRESULTnn"); Scanner scan = new Scanner(System.in); //double[] mark = new double[7]; for (int i = 0; i < 7; i++) { System.out.print("nMarks in subject " + (i + 1) + "t:t"); var = scan.nextDouble(); a[i] = var; total = total + a[i]; //percentage = first * second * third * fourth * fifth * sixth * seventh * 100 / 700; } percentage = total * 100 / 700; if (a[0] > 35 && a[1] > 35 && a[2] > 35 && a[3] > 35 && a[4] > 35 && a[5] > 35 && a[6] > 35 && percentage > 35) { if (percentage >= 60) { System.out.print("nCongratulation!!! you've got FIRST dividionn"); } else if (percentage >= 45 && percentage < 60) { System.out.print("nCongratulation!!! you've got SECOND dividionn"); } else if (percentage >= 35 && percentage < 45) { System.out.print("nCongratulation!!! you've got THIRD dividionn"); } } else { System.out.print("nSORRY!!! you've FAILEDn"); } } } 解决方法
这就是问题
double a[] = null; 由于a为null,因此每次使用它时都会出现NullPointerException,直到初始化它为止.所以这: a[i] = var; 将失败. 一个可能的解决方案是在声明它时初始化它: double a[] = new double[PUT_A_LENGTH_HERE]; //seems like this constant should be 7 IMO比解决这个例外更重要的是,您应该学会阅读堆栈跟踪并理解它所说的内容,这样您就可以发现问题并解决问题.
此异常表示存在使用null值的变量.怎么解决?在使用之前,请确保变量不为null.
这条线有两部分: >首先,显示抛出错误的类和方法.在这种情况下,它位于< init>在包twoten中声明的类TwoTenB中的方法.当您遇到SomeClassName的错误消息时.< init>表示在创建类的新实例时抛出错误,例如执行构造函数(在这种情况下似乎是问题). 从这一行开始,其他行将类似于告诉您错误出现的位置.所以当读这个:
这意味着您试图在javapractice包中声明的类JavaPractice的main方法中实例化一个TwoTenB对象引用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |