gpt4 book ai didi

java - arraylist java编译错误

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

好吧,我尝试在java中使用arraylist一段时间来实验一些与我的项目相关的东西..所以我想出了一个像这样的简单代码

有3个文件...DataStruc.java、DataStrucHand.java、testcase1.java

DataStruc.java


public class DataStruc {
private String testString;

public DataStruc(String s){
this.testString = s;
}

public String getTestString() {
return testString;
}

public void setTestString(String testString) {
this.testString = testString;
}

public String toString(){
return String.format("%s",testString);
}
}


DataStrucHand.java

import java.util.ArrayList;

public class DataStrucHand {
private ArrayList<DataStruc> ds;

public void addData(String ss){
ds.add(new DataStruc(ss));
}

public ArrayList<DataStruc> getData(){
return ds;
}
}


testcase1.java
import java.util.*;
public class testcase1 {
public static void main(String args []){
DataStrucHand dsh = new DataStrucHand();

String gdata = "test";

dsh.addData(gdata);


}
}

我尝试编译它并出现此错误

 Exception in thread "main" java.lang.NullPointerException
at DataStrucHand.addData(DataStrucHand.java:7)
at testcase1.main(testcase1.java:8)

我能知道到底出了什么问题吗?我什至无法添加数据...我正在尝试添加数据并通过创建另一个 testcase2.java 将其检索回来...但是我现在添加到数组列表时遇到问题...我的目的是创建一个临时变量用于保存可由 1 个程序获取但与 2 个不同类一起运行的特定字符串的存储。

最佳答案

您永远不会向 ds 字段分配任何内容。

DataStrucHand.java

import java.util.ArrayList;

public class DataStrucHand {
private ArrayList<DataStruc> ds; //I am null because nothing is ever new'd up here...

public void addData(String ss){
ds.add(new DataStruc(ss));
}

public ArrayList<DataStruc> getData(){
return ds;
}
}

尝试一下这一行:

private ArrayList<DataStruc> ds = new ArrayList<DataStruc>();

或者,如果您喜欢该方法,您可以使用一个构造函数来更新它:

public DataStrucHand() {
ds = new ArrayList<DataStruc>();
}

关于java - arraylist java编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9471238/

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