谢谢你的关注。让我们直奔问题。
这是我的课程的样子
`
class Moon{
double distance;
double angle;
double diameter;
String col;
double centreOfRotationDistance;
double centreOfRotationAngle;
}
class Planet{
double distance;
double angle;
double diameter;
String col;
Moon moon = new Moon();
}
`
然而,当我试图访问< code >星球[i]时。像这样,java抛出< code > NullPointerException 。我的代码有什么问题吗?如果是,我该如何修复?
`
System.out.println("Creating planets...");
String[] colArray = {"red", "orange", "yellow", "green", "blue", "indigo", "violet", "white", "red"};
for(int i = 0; i < 8; i++){
planets[i] = new Planet();
planets[i].distance = 100 + (i * 100);
planets[i].angle = 0 + (i * 20);
planets[i].diameter = 20 + (i * 10);
planets[i].col = colArray[i];
System.out.println("Planet " + i + " created");
System.out.println("Creating moon..." + i);
planets[i].moon.distance = 10 + (i * 5);
planets[i].moon.angle = 0 + (i * 20);
planets[i].moon.diameter = i + 2;
planets[i].moon.col = colArray[i++];
planets[i].moon.centreOfRotationDistance = (100 + (i * 100))/10;
planets[i].moon.centreOfRotationAngle = 0 - (i * 20);
}
System.out.println("Done creating planets.");
System.out.println("Creating the sun...");
`
堆起来,以防有用
再次感谢您的阅读/回答
我认为我可能过于雄心勃勃,无法访问正在创建的类并从中获取值。因此,我尝试将代码更改为上面的片段,但没有成功?
问了几个朋友,没有人知道为什么会出错。因此发布
这些线是问题所在:
planets[i].moon.col = colArray[i++];
planets[i].moon.centreOfRotationDistance = (100 + (i * 100))/10;
在这些行中的第一行中,您将递增i
-这意味着在下一行中,行星[i]
引用元素仍然为空的数组索引。
我怀疑仅仅是这一简单的改变就能解决问题:
planets[i].moon.col = colArray[i];
顺便说一句,我还建议更改您的代码以创建一次有关Planet
的所有内容,然后将其分配到数组中:
Planet planet = new Planet();
planet.distance = 100 + (i * 100);
planet.angle = 0 + (i * 20);
planet.diameter = 20 + (i * 10);
planet.col = colArray[i];
// etc
planets[i] = planet;
(我还建议使用私有字段,可能还有一个接受一堆值的构造函数,但那是另一回事。)
我最近--就像今天一样--对学习用Clojure编程产生了兴趣。现在,在安装了最新版本的Java jdk并下载了leiningen脚本之后,我遵循了后者的安装说明,特别是在http://www.lispcast.com/clojure-ubuntu上提供的说明。 现在,在运行并下载相关的jar文件之后,程序退出时会出现一个关于找不到类的错误。该错误如下: 线程“main”java.lang.Exc
你好,我正在为三星Gear创建一个小工具。我用Tizen IDE做可穿戴设备。我关注了他们的youtube tutoria:如何创建基本的集成Gear应用程序。 我尝试在Tizen IDE中构建项目,但出现了一个构建错误: 生成过程中出错。对项目“SimpleSAPConsumer”运行生成器“Web小部件生成器”时出错。构建错误:无法确定图形元素类型,因为文档类为空。这可能是一个投影,请使用EX
问题内容: 以下Java程序平均需要0.50秒至0.55秒的时间运行: 如果我替换为,则需要0.60到0.65秒的时间来运行。怎么会? 我对该程序的每个版本运行了15次,两次交替运行。结果如下: 最快的运行时间比最慢的运行时间长。如果它们具有相同的效率,则发生这种情况的可能性将小于。 问题答案: 字节码的顺序略有不同。 : vs : 乍看之下,这没有什么区别;如果有的话,第二个版本更理想,因为它减
抽象类: 子类:
我有一个java中的练习,它的文本是: 矩阵类表示整数数组。其框架如下:公共类矩阵{private int[]]mat;/*创建一个矩阵对象,其内容由矩阵矩阵表示。*/public Matrix(int[][]mat){…}/*返回由调用该方法的对象表示的矩阵元素之和。*/public int sumElements(){…}/*通过移除行i和列j*/公共子矩阵矩阵(int i,int j){。。
我有这个主代码 这是我的个人课 我不明白当我在InputPerson()类中推送这段代码时,它会显示我输入的人的信息 但当我在Display()类中尝试这样做时,它总是告诉我错误“无法读取数组长度,因为”“为null” 我不知道如何将我在InPutPerson()类中输入的数据传递到Display()类,请帮助我