Ho un enum che è privato, non deve essere esposto al di fuori della classe. Posso comunque fare un'importazione statica di quel tipo, in modo che non debba digitare il tipo di enumerazione ogni volta? O c'è un modo migliore per scrivere questo? Esempio:Posso eseguire un'importazione statica di una sottoclasse privata?
package kip.test;
import static kip.test.Test.MyEnum.*; //compile error
public class Test
{
private static enum MyEnum { DOG, CAT }
public static void main (String [] args)
{
MyEnum dog = MyEnum.DOG; //this works but I don't want to type "MyEnum"
MyEnum cat = CAT; //compile error, but this is what I want to do
}
}
no, enum fornisce altre forme di sicurezza diverse dalla semplice incapsulamento: ad esempio, è possibile utilizzarle nelle istruzioni switch e si possono ricevere avvisi se ne si omette uno. Basta attenersi alla qualifica - ci sono problemi di verbosità peggiori in java;) – Chii
@akf: Chii ha ragione, nel mio codice attuale le enumerazioni hanno un comportamento al di là di ciò che può essere banalmente fatto con costanti statiche. Ho solo semplificato tutto questo per la domanda, quindi sarebbe l'esempio minimo. Immagino di essere solo bloccato con nomi di qualificatore lunghi (molto più lunghi di "MyEnum" nel mio codice attuale, purtroppo ...) – Kip
@Kip: in questo caso, perché hai accettato questa risposta? – Thilo