Si consideri il seguente semplice esempio di codice:importazione statica senza nome del pacchetto
public class TestStaticImport {
static enum Branches {
APPLE,
IBM
}
public static void doSomething(Branches branch) {
if (branch == APPLE) {
System.out.println("Apple");
}
}
}
Se cercheremo di compilare questo codice, si riceverà il messaggio di errore:
java: cannot find symbol
symbol: variable APPLE
location: class TestStaticImport
Questo potrebbe essere risolto introducendo l'importazione statica di questo enum
:
import static
... TestStaticImport.Branches.*
ma per il momento le cose incomprensibili (per me) Iniziamo:
questa soluzione funziona bene, tutto è ben compilato, fino classe TestStaticImport
verrà spostato nel package principale vuota, vale a dire non c'è alcuna
package blablabla;
nella parte superiore di questo file java;
Codice: import static TestStaticImport.Branches.*;
è evidenziato come codice valido nel mio IntelliJ IDEA (nome di IDE non importa, solo per informazioni), ma quando provo a compilare tale codice seguente errore:
java: package TestStaticImport does not exist
Quindi, ci sono in realtà due domande:
1) domanda principale: perché è impossibile import static
dalla directory vuota?
2) Qual è un altro modo (se esiste) per consentire riferimenti in codice ai campi di enum utilizzando solo i loro nomi (ad esempio APPLE
anziché Branches.APPLE
), eccetto l'importazione statica?
P.S. Per favore, non dirmi che i pacchi vuoti sono brutti, e così via. Questa domanda è solo un problema teorico.
ho avevo incontrato lo stesso problema come voi per la prima domanda ... Per quanto posso vedere è una limitazione. – fge