Я работал над проектом в Netbeans и недавно переместил все классы из одного файла Java в отдельные файлы классов.
Я обновил конструкторы некоторых классов в отдельных файлах, напримерas:
public class Pawn extends Piece {
public Pawn(char color, int id, int xSpace, int ySpace) throws InterruptedException{
this.color = color;
this.id = id;
this.xSpace = xSpace;
this.ySpace = ySpace;
this.firstMoveMax = 2;
this.verticalMoveMax = 1;
this.horizontalMoveMax = 0;
this.diagonalMoveMax = 1;
}
}
Этот класс Pawn находится в своем собственном файле Pawn.java.Я обновил вызов конструктора в другом файле следующим образом:
else if (x == 1 || x == 6){
this.board[x][y] = new Pawn(color, IdCounter.getId(), x, y);
}
Как видите, подпись для конструктора совпадает как в классе, так и в том месте, где создается экземпляр класса.Однако, когда я пытаюсь запустить файл, я получаю прикрепленную ошибку:
[введите описание изображения здесь] [1]
C:\Users\Documents\NetBeansProjects\chess\Chess\src\chess\Board.java:28: error: constructor Pawn in class Pawn cannot be applied to given types;
this.board[x][y] = new Pawn(color, IdCounter.getId(), x, y);
required: char,int
found: char,int,int,int
reason: actual and formal argument lists differ in length
Ошибка показывает, что код ожидаетстарый конструктор (char, int) вместо нового (char, int, int, int).
Мой вопрос такой: проблема Netbeans, проблема, поскольку два класса находятся в отдельных файлах, иличто-то еще происходит?
Спасибо за помощь!