2012-04-04 30 views
12

Tengo 3 matrices de cadenas con constantes. por ejemplo:Múltiples clases Enum en un archivo Java

String[] digit = {"one", "two", "three"}; 
String[] teen= {"ten", "twenty", "thirty"}; 
String[] anchors = {"hundred", "thousand", "million"}; 

Estoy pensando en la transferencia de éstos a las enumeraciones por separado, así que voy a tener 3 clases de enumeración: digit, teen y anchors con getValue métodos implementados. Pero no quiero tenerlos en archivos separados ya que solo tengo datos pequeños y el mismo tipo de datos. ¿Cuál es la mejor manera de tener todo esto con métodos de acceso en el mismo archivo java significativo?

Respuesta

36

Pueden ser de tres clases internas como esto:

public class Types { 
    public enum Digits {...} 
    public enum Teens {...} 
    .... 
} 

Entonces ellos se refieren Types.Digits.ONE, etc. Types.Teen.TWENTY

También puede utilizar las importaciones estáticas como esto:

import Types.Digits; 
import Types.Teen; 

..

para tener referencias más cortas: Digits.ONE, Teen.TWENTY etc.

+0

La única sugerencia que haría es cambiar la firma de las enumeraciones a 'public static enum'. De esta forma, podemos usar una importación estática en las enumeraciones necesarias y guardar un poco de tipeo para el usuario. – jpm

+1

las enumeraciones ya son estáticas; no es necesario que las declare como estáticas (como las interfaces). –

+5

Tienes razón. Estoy seguro de que aprendí eso en algún momento. Sin embargo, a menos que usar el nombre completamente calificado agregue legibilidad o claridad, aún así sugeriría ir con la importación estática, aunque ese es realmente un punto de preferencia personal, supongo. – jpm