gpt4 book ai didi

java - Java 处理中的 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 07:40:35 25 4
gpt4 key购买 nike

我希望你们中的一些人熟悉 Java 的处理开发环境。我搜索过该网站,但找不到太多内容。所以我应该从 'args' 字符串数组传递命令行参数

public static void main(String[] args )

...到 setup() 函数中的数组,以便我可以解析它们并将它们用作条形图的高度值,这些条形图将绘制在图形窗口上。我不明白为什么我在第 16 行不断收到 NullPointerException 错误...

for(int i = 0; i < tempArgs.length; i++) {
dataArray[i] = Integer.parseInt(tempArgs[i]);
}

.....因为我认为 tempArray 数组中应该有值,这似乎是由我用来在 main 方法末尾测试它的 System.out.println 语句确定的。这是完整的代码,很短。任何帮助将不胜感激。

public class Main extends PApplet {
int[] dataArray ;
int[] normalizedData;
String[] tempArgs;

@Override
public void setup() {
/*size(dataArray[2], dataArray[3]);
smooth();
background(255);*/
for(int i = 0; i < tempArgs.length; i++) {
dataArray[i] = Integer.parseInt(tempArgs[i]);
}

int max = dataArray[0];
for(int i = 0; i < dataArray.length; i++) {
if(dataArray[i] > max) {
max = dataArray[i];
}
}

for(int i = 0; i < dataArray.length; i++) {
normalizedData[i] = (dataArray[i] / max) * (height - 20);
}

for(int i = 0; i < normalizedData.length; i++) {
fill(255,34,65);
rect(3, 5, 10, normalizedData[i]);
}

size(dataArray[2], dataArray[3]);
smooth();
background(255);

}

public static void main(String[] args) {
String[] tempArgs = new String[args.length + 2];
tempArgs[0] = "--bgcolor=#FFFFFF";
tempArgs[1] = "project1.Main";
for(int i = 2; i < tempArgs.length; i++) {
tempArgs[i] = args[i-2];
}
System.out.println(tempArgs.length);
PApplet.main(tempArgs);
}
}

最佳答案

您缺少 dataArray 的创建。

@Override
public void setup() {
// add this line
dataArray = new int[tempArgs.length];

for(int i = 0; i < tempArgs.length; i++) {
dataArray[i] = Integer.parseInt(tempArgs[i]);
}
...
}

此外,tempArgs 应该是static,因为在 main() 中没有 Main 的实例类还没有,因此只有保存 tempArgs 才允许稍后在 setup() 中使用它。

public class Main extends PApplet {
int[] dataArray ;
int[] normalizedData;
static String[] tempArgs;

...

public static void main(String[] args) {
tempArgs = new String[args.length + 2]; // note change in this line!
...
}
}

也许可以更简单地完成,因为我看到您正在将 tempArgs 传递给 PApplet.main(),但是我不知道这个小程序框架是如何工作的。

关于java - Java 处理中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5466590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com