2010-01-11 20 views
11

¿Hay alguna manera de "heredar" las importaciones?Evitar importaciones repetidas en Java: ¿Heredar importaciones?

Ejemplo:

enum común:

public enum Constant{ ONE, TWO, THREE } 

clase Base utilizando esta enumeración:

public class Base { 
    protected void register(Constant c, String t) { 
     ... 
    } 
} 

Sub clase pueda una importación a utilizar las constantes de enumeración convenientes (sin nombre enum):

import static Constant.*; // want to avoid this line! 
public Sub extends Base { 
    public Sub() { 
     register(TWO, "blabla"); // without import: Constant.TWO 
    } 
} 

y otra clase con la importación misma ...

import static Constant.*; // want to avoid this line! 
public AnotherSub extends Base { 
    ... 
} 

pude usar la versión clásica constantes finales estáticas, pero tal vez hay una manera de utilizar una enumeración común con la misma comodidad.

+1

Si utiliza un IDE (por ejemplo Eclipse) a continuación, se añadirán automáticamente las importaciones cuando se utiliza la clase. – medopal

Respuesta

13

import s son sólo una ayuda para el compilador para encontrar las clases. Están activos para un único archivo fuente y no tienen ninguna relación con los mecanismos de programación orientada a objetos de Java.

Así que no, no se puede “heredar” import s

3

No, no puede heredar una importación. Si desea hacer referencia a un tipo dentro de un archivo de clase sin utilizar el nombre completo, debe importarlo explícitamente.

Pero en su ejemplo sería bastante fácil de decir

public Sub extends Base { 
    public Sub() { 
     register(Constant.TWO, "blabla"); // without import: Constant.TWO 
    } 
} 
3

Si utilizas Eclipse, utilice "Organizar importaciones" (Ctrl + Shift + O) para que el IDE hacer lo importaciones para usted (o la finalización de código utilización (Ctrl +espacio)

+2

Eva Mejor aún, configúrelo como una "Acción de guardado" para que Eclipse los organice cada vez que guarde el archivo. Esto y formatear en Guardar ayuda a salvar cualquier ciclo cerebral pensando en tales cosas :) –

+0

Muy buena idea, olvídate de eso ^^ – helpermethod

Cuestiones relacionadas