Quote Originariamente inviata da andbin Visualizza il messaggio
Purtroppo con il poco codice postato e senza conoscere motivazioni/requisiti di quanto dovresti fare ... non è che si possa dire molto.


Perché ti aspetti che Hotel sia un List<Room> ?

Se hai fatto che:

public class Hotel implements List<Room>

sappi che non è particolarmente buono.
E se invece avessi fatto es.:

public class Hotel extends ArrayList<Room>

allora ... è ancora peggio.
Essendo una prova d'esame viene fornito solo il test e lo studente deve scrivere delle classi che funzionino con quel test, a prescindere dal fatto che quello che fa non sia particolarmente utile.
Se osservi bene tutto è deducibile dal test. Se non lo fosse non sarebbe una prova d'esame.
Se nel test trovo "assert h1 instanceofList"non posso far altro che adeguarmi e se Hotel extends ArrayList fa funzionare il test ho raggiunto il mio scopo.

Comunque confrontandomi anche con colleghi ho trovato la soluzione. Era più semplice di quanto immaginassi.
Mi ero fissato sul fatto che dovessi per forza implementare un enum ed invece bastava dichiarare nella classe Room quelle 4 costanti e far prendere un int al costruttore di Room.
In questo modo:

codice:
public class Room {     

    public final static int SINGLE_ROOM=1, DOUBLE_ROOM=2, TWIN_ROOM=2, SUITE_ROOM=4;
    private int size;
   
    
    public Room(int size){
     this.size=size;
    }
...
Mi resta il dubbio che si possa ancora fare implementando un enum.
Se vuoi ti passo l'intero test così mi dai un'opinione sul fatto che si possa risolvere tutto in 60 minuti.

Grazie comunque per la risposta.