2010-01-11 2 views
11

가져 오기를 "상속하는"방법이 있습니까?Java에서 반복되는 가져 오기 피하기 : 가져 오기를 상속합니까?

예 :

공통 열거 :

public class Base { 
    protected void register(Constant c, String t) { 
     ... 
    } 
} 
편리 열거 상수를 사용하여 가져 오기를 필요로

하위 클래스 (열거 형 이름이없는 :

public enum Constant{ ONE, TWO, THREE } 

기본 클래스이 열거를 사용하여) :

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

와 같은 수입으로 다른 클래스...

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

나는 고전적인 정적 최종 상수를 사용하지만 어쩌면 같은 편의 공통의 열거를 사용하는 방법이 있습니다.

+1

당신이 IDE는 클래스를 사용할 때 다음 수입이 자동으로 추가됩니다 (예를 들어 이클립스)를 사용하는 경우. – medopal

답변

13

import의 말을 쉽게 충분하다 클래스를 찾을 수있는 컴파일러 단지 원조이다. 단일 소스 파일에 대해 활성화되어 있으며 Java의 OOP 메커니즘과는 아무런 관련이 없습니다.

그래서, 아니, 당신은 import의 당신이 사용하는 "수입을 구성"Eclipse를 사용하는 경우

3

아니요, 가져 오기를 상속받을 수 없습니다. 정규화 된 이름을 사용하지 않고 클래스 파일에서 유형을 참조하려면 명시 적으로 가져와야합니다.

하지만 당신의 예제는

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

(Ctrl 키 + 시프트 + O) "상속"할 수없는 IDE를하게하는 수행 (또는 사용 코드 완성을위한 수입 (Ctrl 키 + 공간)

+2

이브 더 좋게, 이것을 "Save Action"으로 설정하면 이클립스가 파일을 저장할 때마다 그것을 정리할 것이다. 저장시 서식 및 서식을 지정하면 뇌의 사이클을 저장하는 데 도움이됩니다. –

+0

아주 좋은 생각, 완전히 잊어 버려요 ^^ – helpermethod

관련 문제