我有下面的代码。

Complex[] time1Dummy = new Complex[time1.size()];
Complex[] freq1 = new Complex[time1.size()];
System.out.println("Size of time1:" +time1.size());

for(int i = 0; i < time1.size(); i++) {
    time1Dummy[i].setRe(time1.get(i));
    time1Dummy[i].setIm(0.00);
}

在此,Complex是包含以下内容的类
private static Double re;   // the real part
private static Double im;   // the imaginary part`

在这里,我试图将数组列表time1中的值分配给复杂值函数。

我正在eclipse 4.3.2中运行此代码。有人可以帮我吗?

最佳答案

我的猜测是您会收到空指针异常吗?请参阅我在for循环中添加的第一行(假设Complex具有默认构造函数)。

Complex[] time1Dummy = new Complex[time1.size()];
Complex[] freq1 = new Complex[time1.size()];
System.out.println("Size of time1:" +time1.size());

for(int i = 0; i < time1.size(); i++) {
    time1Dummy[i] = new Complex();
    time1Dummy[i].setRe(time1.get(i));
    time1Dummy[i].setIm(0.00);
}

代码的前两行创建了Complex对象的数组,但是每个元素尚未在其中创建对象。您需要首先显式创建一个对象。

同样,属性也不应该是静态的:
private Double re;   // the real part
private Double im;   // the imaginary part`

10-08 11:13