Array konstruktor s IllegalArgumentException konstruktor

hlasů
2

Pro mou konstruktéra je to, co jsem udělal dole, a to je kód bloku jsem tak daleko, i když jsem si jistá, že je to špatně napsané, tak jak mohu psát konstruktor to pod nohama? Děkuji :)

Pro tento konstruktor musím inicializovat mřížku s daným polem, a pokud je pole o velikosti nula v jakémkoli rozměru musím hodit IllegalArgumentException. Konstruktor by měl také zkontrolovat, zda je strávník buňky je platná, a pokud ne, házet 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);
Položena 20/10/2018 v 12:37
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Zkuste to:

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"); 
}
Odpovězeno 20/10/2018 v 12:45
zdroj uživatelem

hlasů
0

Zní to jako váš konstruktor by měl obdržet rozměry, nikoli buňky samy o sobě:

public Grid(int width, int height) {
    if (width <= 0 || height <= 0) {
        throw new IllegalArgumentException();
    }
    cells = new Cell[width][height];
}
Odpovězeno 20/10/2018 v 12:40
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more