Sì, hai ragione
Ecco qualche dettaglio in più:
Dunque, il percorso della directory del progetto è il seguente (uso Mac):
codice:
Macintosh HD/Utenti/Scrivania/Progetto
All'interno della directory Progetto c'è un'altra directory "radice" di nome project che è il package principale. La struttura delle directory e dei file interni è quella che ho descritto nel primo post.
Ora, nella directory util ci sono quattro file che compilano perfettamente e senza errori. La prima riga di ogni file che si trova in util è la seguente:
codice:
package project.tui.util;
I problemi iniziano nella directory classes: ogni file che si trova in questa directory ha la seguente intestazione:
codice:
package project.tui.classes;
Prima di tutto, la classe User compila senza problemi ma le sottoclassi Admin e Guest no, l'errore è che entrambe le due sottoclassi non trovano la classe User che, però, si trova nella stessa directory. La classe Booking non compila perché non riesce a trovare la classe Guest di cui fa uso. Ecco l'errore che esce sul terminale:
codice:
Booking.java:39: cannot find symbol
symbol : class Guest
location: class project.tui.classes.Booking
public Guest getBooker() { return booker; }
^
L'errore si ripete ogni volta in cui compare un oggetto di tipo Guest.
Le classi Room e Hotel fanno uso della classe List<T> contenuta nella directory util di prima, perciò, dopo l'intestazione con la direttiva "package" per creare il package faccio l'import della classe List<T> in util così:
codice:
Room.java
package project.tui.classes;
import project.tui.util.List;
public class Room {
...
La stessa cosa si ripete per la classe Hotel.
Infine, nella directory app c'è un'unica classe ArchiveBuilder in cui si fa uso sia di classi che appartengono a util sia di classi che appartengono a classes perciò, dopo la direttiva package, importo come ti ho mostrato prima le classi che mi occorrono da util e da classes. Gli errori del compilatore sono sempre quelli: ogni volta in cui creo un riferimento ad un oggetto la cui classe è contenuta in uno degli altri package, il compilatore non riesce a trovarla:
codice:
ArchiveBuilder.java: 176 : cannot find symbol
symbol : class Booking
location: class project.tui.app.ArchiveBuilder
List<Booking> reservation = new List<Booking>();
^
Dovrei aver aggiunto tutto. Spero che sia tutto chiaro, in caso contrario dimmi pure cosa non si capisce.
Grazie in anticipo per l'aiuto!