Java ap计算机科学硬件错误

Java ap计算机科学硬件错误,java,arraylist,nullpointerexception,Java,Arraylist,Nullpointerexception,我当前遇到以下代码错误 import java.util.ArrayList; public class Catapult { ArrayList<Double> distance; Catapult() { ArrayList<Double> distance = new ArrayList<Double>(); } public void calcDistance(Integer[][] data

我当前遇到以下代码错误

import java.util.ArrayList;
public class Catapult
{
    ArrayList<Double> distance;

    Catapult()
    {
        ArrayList<Double> distance = new ArrayList<Double>();
    }

    public void calcDistance(Integer[][] data)
    {
        int counter = 0;

        for(int a = 0; a < data.length; a++)
        {
            double speed = data[a][0];
            for(int x = 0; x < data[0].length; x++)
              {
                double radian = Math.toRadians(data[0][1 + x]);
                double dist = (speed * speed * Math.sin(2 *radian)) / 9.8; 
                distance.add(dist);
              }
        }
    }

    public void print()
    {
        for(int x = 0; x < distance.size(); x++)
        {
            System.out.println(distance.get(x));
        }
    }
}
无论何时尝试运行它,都会得到java.lang.NullPointerException“Null”。这是一项要求计算不同速度和角度的射弹射程的作业,该射程存储在双数组数据中。但是,错误不断出现,我无法将dist添加到数组列表distance

Catapult() {
    ArrayList<Double> distance = new ArrayList<Double>();
}
要访问正确的
距离
变量。然后,如果您尝试在代码中使用它,它将不再是
null

是的,就像建议的评论一样,试着学习如何使用调试器。这是一个重要的工具,您可以自己查找这些bug。

Catapult()
Catapult()
{
    ArrayList<Double> distance = new ArrayList<Double>();
}
{ ArrayList距离=新的ArrayList(); }
改为

Catapult()
{
    distance = new ArrayList<Double>();
}
弹射器() { 距离=新的ArrayList(); }
Google“如何读取堆栈跟踪”。请花一些时间学习如何使用调试器。我强烈建议学习如何调试。请阅读并考虑第一部分正在调试。如果你不能调试,你以后的困难会越来越大——最好早点学会如何调试。
Catapult()
{
    ArrayList<Double> distance = new ArrayList<Double>();
}
Catapult()
{
    distance = new ArrayList<Double>();
}