2010-01-11 26 views
11

Gibt es eine Möglichkeit, Importe zu "erben"?Wiederholte Importe in Java vermeiden: Importe übernehmen?

Beispiel:

Gemeinsame Enum:

public enum Constant{ ONE, TWO, THREE } 

Basisklasse mit dieser Enum:

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

Sub-Klasse einen Import benötigen bequem, die ENUM-Konstanten zu verwenden (ohne Enum Name):

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

und eine weitere Klasse mit dem gleichen Import ...

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

I klassische statische endgültige Konstanten aber vielleicht verwenden könnte es einen Weg gibt, eine gemeinsame Enum mit dem gleichen Komfort zu bedienen.

+1

Wenn Sie ein IDE (zB Eclipse) verwenden, dann werden die Einfuhren automatisch hinzugefügt werden, wenn Sie die Klasse verwenden. – medopal

Antwort

13

import s sind nur eine Hilfe für den Compiler Klassen zu finden. Sie sind für eine einzelne Quelldatei aktiv und haben keinerlei Bezug zu den OOP-Mechanismen von Java.

Also, nein, man kann nicht „erben“ import s

3

Nein, Sie können keinen Import erben. Wenn Sie innerhalb einer Klassendatei auf einen Typ verweisen möchten, ohne den vollständig qualifizierten Namen zu verwenden, müssen Sie ihn explizit importieren.

Aber in Ihrem Beispiel wäre es leicht genug, um zu sagen,

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

Wenn Sie Eclipse-verwenden, "Organisieren Import" (Ctrl + Umschalttaste + O) verwenden, um die IDE tun zu lassen, die Sie Importe (oder Beendigung Verwendung Code (Ctrl +Raum)

+2

Eve Nennen Sie dies besser als "Aktion speichern", damit Eclipse sie bei jedem Speichern der Datei organisiert. Dies und die Formatierung bei Save hilft, Gehirnzyklen zu speichern, die über solche Dinge nachdenken :) –

+0

Sehr gute Idee, total vergessen ^^ – helpermethod