почему я не могу создать экземпляр MyVector? - PullRequest
0 голосов
/ 01 декабря 2011

Учитывая следующий код, по какой-то причине он не будет создавать экземпляр MyVector.В чем может быть проблема?Проблема возникает в строке Main:

MyVector vec = new MyVector();

Однако, когда я создаю экземпляр MyVector с другим конструктором:

MyVector vec2 = new MyVector(arr);

, он компилируется, и экземпляр выделяется.

класс Dot:

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);


    }
}

С уважением Рон

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Я скопировал ваш код в мою Eclipse IDE и получил «org.eclipse.debug.core.DebugException: com.sun.jdi.ClassNotLoadedException: тип не был загружен при получении типа компонента массива»Исключение, когда я нажимаю на переменную arrayDots.

Ваш код в порядке и работает.Отладчик имеет проблему, потому что класс Dot не загружен.Смотрите также: http://www.coderanch.com/t/433238/Testing/ClassNotLoadedException-Eclipse-debugger

Вы можете изменить свой Main следующим образом (я знаю, это не очень красиво)

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);


}
2 голосов
/ 01 декабря 2011

Ваш конструктор по умолчанию не отображается.Добавьте общедоступное ключевое слово перед конструктором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...