2011-05-10 3 views
1

자바 주석주석에 제한을 추가하는 방법은 무엇입니까?

@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.TYPE) 
public @interface OneAnnotation{ 
    String aNumber();   
} 

일치하는 문자열 형식 ("[\ d] +") 만 허용하고 다른 문자열은 컴파일러 오류나 다른 알림에 의해 "실패"합니다. Annotation의 메소드에 반환 된 값에 제한을 추가한다.

유효 :

@OneAnnotation(aNumber = “1234”) 

유효하지 않음 :

@OneAnnotation(aNumber = “XXXX”) 
+0

언어는 무엇입니까? – progo

+0

자바를 사용하고 있습니까? – Steven

답변

1

당신은 annotation processing를 사용하여이를 구현 할 수 있습니다.

그 외에도 주석에 임의의 제한을 추가 할 수있는 방법은 없습니다.

하지만 숫자를 원할 경우 범위 요구 사항에 따라 int 또는 long과 같은 숫자 유형을 사용해야하는 이유는 무엇입니까?

+0

주석 처리 이외의 다른 방법은 없습니까 ?? – rayeaster

+0

예, 제가 아는 한. (컴파일 타임 오류를 고집한다면 당연히 런타임에 원하는 것을 자유롭게 할 수 있습니다.) –

+0

내가 원했던 것은 "OneAnnotation"사용자가 주석에 대한 제한 사항에주의하도록 상기시키는 것입니다. 따라서 컴파일 타임 오류가있는 것이 좋습니다. 하지만 주석 처리가 파일을 생성하는 데 사용된다는 것을 알았습니다.이 간단한 제한을 구현하는 데 어떻게 사용할 수 있습니까? 귀하의 질문에 대한 : 실제로, 내가 주석 메서드 반환 값 (문자열) 일부 정규식 패턴을 일치 원하는, 숫자는 단지 예입니다. 감사합니다. – rayeaster

관련 문제