当前位置: 首页 > 面试题库 >

如何解决线程“ main”中的异常java.lang.NullPointerException错误

季炯
2023-03-14
问题内容

我在Java程序上遇到问题。线程“主”中的异常

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("\tRESULT\n\n");
    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 dividion\n");
        } else if (percentage >= 45 && percentage < 60) {
            System.out.print("\nCongratulation!!! you've got SECOND dividion\n");
        } else if (percentage >= 35 && percentage < 45) {
            System.out.print("\nCongratulation!!! you've got THIRD dividion\n");
        }
    } else {
        System.out.print("\nSORRY!!! you've FAILED\n");
    }
    }
}

问题答案:

这就是问题

double a[] = null;

因为anull,所以NullPointerException每次使用它都会出现,直到您对其进行初始化。所以这:

a[i] = var;

将失败。

可能的解决方案是在声明时将其初始化:

double a[] = new double[PUT_A_LENGTH_HERE]; //seems like this constant should be 7

IMO比解决此异常更为重要的事实是,您应该学会 阅读 stacktrace并 理解其 含义,以便可以发现问题并加以解决。

java.lang.NullPointerException

此异常表示存在一个使用了null值的变量。怎么解决?只需确保变量没有null被使用即可。

在twoten.TwoTenB。(TwoTenB.java:29)

该行包括两个部分:

  • 首先,显示引发错误的类和方法。在这种情况下,它是在package 中声明的类中的at <init> 方法 。当您遇到带有的错误消息时,表示在创建类的新实例(例如执行构造函数)时抛出了错误(在这种情况下,这似乎是问题所在)。TwoTenB``twoten``SomeClassName.<init>
  • 其次,显示在括号之间引发错误的文件和行号的位置。这种方法更容易发现错误发生的位置。因此,您必须查看文件TwoTenB.java,第29行。这似乎是a[i] = var;

从这一行,其他行将类似,以告诉您错误发生在哪里。因此,在阅读本文时:

在javapractice.JavaPractice.main(JavaPractice.java:32)

这意味着您正在尝试在包中声明的类TwoTenBmain方法内部实例化对象引用。JavaPractice``javapractice



 类似资料:
  • 问题内容: 这是代码: 错误: 跑: 请帮助我解决此错误。我正在使用Windows Vista OS。 谁能建议我如何以.3gp格式存储文件?请帮助 问题答案: 方法内部的第202行的某些对象引用是在代码尝试使用点运算符访问/调用它时进行的。 例如 解决方案实际上很简单。只需实例化它即可确保它不为空: …或在访问/调用之前简单地执行nullcheck:

  • 我试图在java应用程序中调用java存储过程。我正在使用ORACLE数据库和JDeveloper。 我得到错误"异常线程"主"java.lang.NullPointerException.我不知道我做错了什么。 我有一个表“Beer”,我想用一个存储过程来选择所有数据,我从Java应用程序中调用这个存储过程。 我有一个java.class文件Store_A. java,我已经加载到ORACLE数

  • 我是mUrthy,我写的是selenium脚本,当我试图执行脚本时,我遇到了错误,请查看下面的脚本和错误。任何一个都能提供更好的解决方案。我使用的是最新版本。 脚本: 包测试项目; 导入组织。openqa。硒。网络驱动程序;导入组织。openqa。硒。火狐。火狐司机; 公共类FirstTestCase{ }错误:线程"main"中的异常java.lang.错误:未解决的编译问题:重复的局部变量驱动

  • 我有任务要做,我有一个问题,我得到了错误。我不知道怎么修理它: 线程“main”java.lang.NullPointerException在test.main(test.java:29)中出现异常

  • 我正在尝试在eclipse中创建jms发布者/订户聊天应用程序。 尝试运行程序时,控制台中出现以下错误

  • 我在导入类和设置变量时遇到了问题,我需要帮助我正在做的一个测试程序。所以我正在测试一个程序,它只是简单地输出您的输入并放置时间戳(如Skype)。我在使消息和时间变量类型工作时遇到了问题!这是我的代码: 这是我的错误: