Java Varargs конструктор дает ошибку в конструкторе подкласса - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть 2 класса: FinishButton и ChangeSpeedButton.FinishButton является родительским классом, но он из другого пакета и является подклассом другого класса.Он имеет 2 конструктора:

public class FinishButton extends Button {

    public FinishButton(Point...points) {
        super(Response.SLOW,Type.HOLD,points);
    }
    public FinishButton() {
        this(new Point(width-75,height-75),
                new Point(width-75,height-15),
                new Point(width-15,height-15),
                new Point(width-15,height-75));
    }

    public void function() {
        nextPanel();
    }

    public void draw(Graphics g) {
        super.draw(g);
        this.xpoints[0] = 0;
        g.setColor(Defaults.GRAPHIC_COLOR);
        int[] xPoints = { 
                width-45-(int)((20*Math.sqrt(3))/2),
                width-45-(int)((20*Math.sqrt(3))/2),
                width-45+(int)((20*Math.sqrt(3))/2)
        },
                yPoints = {
                height-65,height-25,height-45
        };
        int nPoints = 3;
        g.fillPolygon(xPoints, yPoints, nPoints);
    }

}

Эти классы находятся в стадии разработки, но ChangeSpeedButton выглядит следующим образом:

public class ChangeSpeedButton extends FinishButton {

    public ChangeSpeedButton() {
        super(new Point(width/2-30,height-75),
                new Point(width/2-30,height-15),
                new Point(width/2+30,height-15),
                new Point(width/2+30,height-75));
    }

}

Странная вещь в том, что FinishButton прекрасно обрабатывает varargs, когдаперегружая свой собственный конструктор, но по какой-то причине в конструкторе ChangeSpeedButton, Eclipse говорит мне

либо "удалить аргументы, чтобы соответствовать 'FinishButton ()" ", либо«Изменить конструктор FinishButton (): добавить параметры« Точка, точка, точка, точка »».

Кто-нибудь знает, почему он выдает ошибку на ChangeSpeedButton?

Редактировать: я добавил полные классы.И, как и требовалось, вот класс Point:

public class Point {

    private double x,y;

    public double getX() { return x; }
    public double getY() { return y; }

    public Point() {
        this(0,0);
    }
    public Point(double x,double y) {
        this.x = x;
        this.y = y;
    }

    public String toString() {
        return "Point: ("+x+", "+y+")";
    }

}

Может быть, это связано с тем фактом, что классы Button являются вложенными классами?

1 Ответ

0 голосов
/ 21 февраля 2019

О боже мой.Я такой тупойУ меня было открыто 2 файла FinishButton, и хотя я сохранил один из них с правильными изменениями, ChangeSpeedButton посмотрел только устаревший файл.

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