Конструктор Array с конструктором IllegalArgumentException - PullRequest
0 голосов
/ 20 октября 2018

Для моего конструктора это то, что я сделал ниже, и это код блока, который я написал до сих пор, хотя я почти уверен, что это неправильно, так как я могу написать конструктор для этого ниже?Спасибо:)

Для этого конструктора я должен инициализировать сетку с заданным массивом, и если массив имеет нулевой размер в любом измерении, я должен вызвать исключение IllegalArgumentException.Конструктор также должен проверить, является ли граница ячейки действительной, и если нет, выдать исключение IllegalArgumentException.

public class Grid {

private Cell[][] cells;

public Grid(Cell[][] cells) {

    if(cells == 0) {
   } throw new IllegalArgumentException("Height or Width value is less than or equal to zero");

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Попробуйте это:

if(cells != null && cells.length > 0) {        
     for(int i=0; i < cells.length; i++) {
          if(cells[i] == null || cells[i].length == 0) {
                throw new IllegalArgumentException("Width value is null or equal to zero"); 
          } 
     } 
} else {
     throw new IllegalArgumentException("Height value is null or equal to zero"); 
}
0 голосов
/ 20 октября 2018

Похоже, ваш конструктор должен получать размеры, а не сами ячейки:

public Grid(int width, int height) {
    if (width <= 0 || height <= 0) {
        throw new IllegalArgumentException();
    }
    cells = new Cell[width][height];
}
...