鉴于以下代码,由于某种原因,它不会创建MyVector的实例。可能是什么问题?问题发生在Main:
行MyVector vec = new MyVector();
但是,当我使用其他构造函数创建MyVector的实例时:
MyVector vec2 = new MyVector(arr);
编译并分配实例。
班级点数:
public class Dot {
private double dotValue;
public Dot(double dotValue)
{
this.dotValue = dotValue;
}
public double getDotValue()
{
return this.dotValue;
}
public void setDotValue(double newDotValue)
{
this.dotValue = newDotValue;
}
public String toString()
{
return "The Dot's value is :" + this.dotValue;
}
}
类MyVector
public class MyVector {
private Dot[] arrayDots;
MyVector()
{
int k = 2;
this.arrayDots = new Dot[k];
}
public MyVector(int k)
{
this.arrayDots = new Dot[k];
int i = 0;
while (i < k)
arrayDots[i].setDotValue(0);
}
public MyVector(double array[])
{
this.arrayDots = new Dot[array.length];
int i = 0;
while (i < array.length)
{
this.arrayDots[i] = new Dot(array[i]);
i++;
}
}
}
和Main
public class Main {
public static void main(String[] args) {
int k = 10;
double [] arr = {0,1,2,3,4,5};
System.out.println("Enter you K");
MyVector vec = new MyVector(); // that line compile ,but when debugging it crashes , why ?
MyVector vec2 = new MyVector(arr);
}
}
此致 罗恩
答案 0 :(得分:2)
您的默认构造函数不可见。在构造函数前添加public关键字。
答案 1 :(得分:2)
我将您的代码复制到我的Eclipse IDE中并得到了一个“org.eclipse.debug.core.DebugException:com.sun.jdi.ClassNotLoadedException:在检索数组的组件类型时未发生类型的加载。”单击arrayDots变量时出现异常。
你的代码还可以正常工作。调试器有问题,因为未加载Dot类。 另见:http://www.coderanch.com/t/433238/Testing/ClassNotLoadedException-Eclipse-debugger
您可以按照以下方式更改您的主菜(我知道这不是很漂亮)
public static void main(String[] args) {
int k = 10;
double [] arr = {0,1,2,3,4,5};
System.out.println("Enter you K");
new Dot(); // the classloader loads the Dot class
MyVector vec = new MyVector(); // that line compile ,but when debugging it crashes , why ?
MyVector vec2 = new MyVector(arr);
}