2010-10-12 13 views

Respuesta

8

En Java, todas las constantes deben residir en un tipo (clase o interfaz). Pero no tiene que implementar una interfaz para usar una constante declarada dentro.

Usted puede tratar de poner algo como esto en su paquete:

interface Constants { 

    static final String CONSTANT = "CONTANT"; 

} 

y luego, utilizando de esta manera:

String myVar = Constants.CONSTANT; 

De esta manera, usted todavía tiene su interfaz, pero no hay clases Impleméntalo.

+1

Cada declaración de campo en el cuerpo de una interfaz es implícitamente pública, estática y final. –

+7

Java efectivo, el elemento 19 "Usar interfaces solo para definir tipos" recomienda explícitamente este uso de interfaces. Use clases para constantes o enumeraciones, si es posible –

+0

@seanizer, ¿puede enviarme ese pdf? Mi ID de correo está ahí con mi perfil. –

0

Parece ser un buen candidato para una entrada en un archivo de propiedad para mí.

0

Puede usar una clase abstracta para servir como la clase base para cada impls en ese paquete.

0

Puede hacer una clase especial (estática) con solo esta variable. Más tarde puede agregar otras constantes o lo que sea que necesite a esa clase.

5

En general, las aplicaciones tienen una clase o interfaz "Constantes" que contiene todas las constantes.

Generalmente, para agrupar las constantes en clases lógicas. Por ejemplo, si no puede haber dos tipos de empleados, regular y contrato:

class EmployeeType 
{ 
    public static final String REGULAR = "regular"; 
    public static final String CONTRACT = "contract"; 
} 

y utilizarlo como EmployeeType.REGULAR

Si las constantes no se pueden agrupar de esta manera, tener una clase/interfaz independiente para guardar estos archivos.

class Constants 
{ 
    public static final String APPLICATION_DOMAIN = 'domain'; 
} 

No necesita extender/implementar esta interfaz de clase para usar los valores. Las constantes generalmente se declararon public static final, se puede acceder a ellos directamente: Constants.APPLICATION_DOMAIN

2

utilizar una clase privada paquete:

class Constants{ 

    public static final int MY_VALUE = 1234; 

} 

Esto sólo se puede acceder por las clases del mismo paquete:

int val = Constants.MY_VALUE; 
1

Puede hacerlo de varias formas:

  • Una forma (como se menciona aquí) es crear una interfaz constante global y tener un public static final atributos de cada constantes. '
  • Crear archivo de propiedades. Al tener un archivo de propiedades, tendrá un par de valores clave (separados por un operador =) cada uno declarado en una nueva línea. Aquí hay un tutorial sobre cómo crear y usar el archivo de propiedades.
Cuestiones relacionadas