【发布时间】:2014-12-23 19:19:21
【问题描述】:
我有一个对象,它有一些 ArrayList 作为属性,如下所示。现在我试图使用这些对象属性(ArrayList)来放入另一个 Arraylist,但它不起作用并且我得到一个 Nullpointerexception。以下源代码说明了我的想法:
以 Arraylist 作为对象属性的类:
public class RawVector {
private long size;
private ArrayList<Float> x,y,z;
private ArrayList<Long> time;
public void setSize(long time){
this.size = time;
}
public ArrayList<Long> getTime(){
return this.time;
}
public void setTime(ArrayList<Long> time){
this.time = time;
}
我在类 RawVector 的 ArrayList x,y,z 中填充值的类 testcsv:
...... ArrayList<Float> x = new ArrayList<Float>();
ArrayList<Float> y = new ArrayList<Float>();
ArrayList<Float> z = new ArrayList<Float>();
File n = new File("C://file.csv");
FileReader fileReader = new FileReader(n);
BufferedReader reader = new BufferedReader(fileReader);
for(String zeile = reader.readLine(); zeile != null; zeile = reader.readLine()){
StringTokenizer data = new StringTokenizer(zeile, " ,");
x.add(Float.parseFloat(data.nextToken()));
y.add(Float.parseFloat(data.nextToken()));
z.add(Float.parseFloat(data.nextToken()));
size++;
}
vector2 = new RawVector();
vector2.setX(x);
vector2.setY(y);
vector2.setZ(z);
.....
我想将 RawVector 类的 ArrayLists 分配给另一个 ArrayList 的类分割:
ArrayList<Float> sampleX = new ArrayList<Float>();
ArrayList<Float> sampleY = new ArrayList<Float>();
ArrayList<Float> sampleZ = new ArrayList<Float>();
while(countersize <= (new RawVector().getSize())){
Windowing wid = new Windowing();
for(int i = 0; i <= m.getWsize() ; i++){
if(i <= (new RawVector().getSize())){
sampleX.add(rv.getX().get(i));
sampleY.add(rv.getY().get(i));
sampleZ.add(rv.getZ().get(i));
}
我得到以下异常:
Exception in thread "main" java.lang.NullPointerException
at Segementation.getwindow(Segementation.java:69)
at Segementation.main(Segementation.java:95)
第 69 行代表:
sampleX.add(rv.getX().get(i));
这一行背后的想法是获取 Arraylist x 中 i 的值并将其添加到新的 ArrayList sampleX 中
我知道如果你不初始化你的 Arraylist,你会得到一个 NullpointerException。但我很确定我的 RawVector 类的 ArrayList x 是通过 tescsv 类分配值来实现的。
我希望我的问题是直截了当的。如果有任何帮助,我将不胜感激!!!!!! 提前致谢。
【问题讨论】:
-
异常发生在
getwindow方法中,您没有向我们完整展示。您向我们展示了很多 sn-ps 代码代码,格式错误,但遗漏了最重要的部分。请将您的代码缩减为一个简短但完整程序来演示问题...那么我们可以为您提供帮助。 -
你确定
Segemetation类第69行的所有对象都已经正确初始化了吗? -
我不知道你的整个代码,但是有些东西没有被正确初始化。 rv 为 null 或 rv.getX() 为 null。
-
@ProgrammingIsAwsome:你完全正确,rc 的引用为空。
-
如何在另一个类中使用类 testcsv 中创建的 ArrayList?我的意思是如何使用 RawVector 对象的 ArrayList。
标签: java arraylist nullpointerexception