在检索数组组件类型时发生了“Type has not been loaded”错误。

7
我有以下代码。
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中运行此代码。请有人帮忙解决一下吗?


2
发布堆栈跟踪。 - takendarkk
1
你有问题吗???(如果你遇到了异常,你应该包含精确的完整的异常信息以及堆栈跟踪。) - Hot Licks
1个回答

9

我猜你遇到了空指针异常?请看我在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);
}

你的代码前两行创建了复数对象的数组,但是每个元素中还没有创建对象。你需要先显式地创建一个对象。
此外,属性不应该是静态的:
private Double re;   // the real part
private Double im;   // the imaginary part`

我认为你说得对,循环进入之前数组是空的。 - takendarkk
那么我需要删除语句吗?Complex[] time1Dummy = new Complex[time1.size()]; - Dinesh
是的,没错。我为复杂类有一个默认构造函数。 - Dinesh
此外,您的复杂类中的属性不应该是静态的。 - Khary Mendez
是的,将这些值设为静态意味着您只有一个Complex对象,并且两个数组的所有元素都包含完全相同的两个值。(当然,前提是首先存在两个数组中的元素。) - Hot Licks
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接