필자는 반성을 통해 내 코드에서 결정을 내 자신 만의 주석을 만들었습니다. 주석에는 유일한 요소로 설정된 기본값이 있습니다. 리플렉션을 통해 기본값에 액세스 할 수있는 방법이 있습니까?Java에서 주석의 기본 요소 값 가져 오기
PageableRequestMapping.java (주석)
package org.tothought.controllers.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface PageableRequestMapping {
String variablePath() default "/";
}
사이비 코드는 문제의 나의 연구가 더 예를 설정하지 않았다 기본값
private int parsePageNumber(StringBuffer requestURL,
PageableRequestMapping pageableRequestMapping) {
String variablePath = pageableRequestMapping.variablePath();
//Psuedo code doesn't work in Java, included to illustrate intentions
if(variablePath.equalsIgnoreCase(pageableRequestMapping.variablePath().default())){
//handle default case
}else{
//handle different case
}
return 0;
}
를 검색 할 수 있습니다. 나는이 값이 클래스를 통해 정적 인 방식으로 액세스 될 수 있다고 이론화했으나 그렇게 할 수 없었다. 그래서 두 가지 질문이 남아 있습니다.
- 주석 내에서 요소의 기본값을 가져올 수 있습니까?
- 그렇다면 어떻게됩니까?
또한이 값을 하드 코딩 할 수도 있지만 프로그램을 약간 더 강력하게 만들고 싶습니다.
솔루션이 null을 반환합니다. 나는 그게 아니라고 확인하고있다. 이 코드는 실행 했습니까? –
나는 성공적으로 달리는 시험 프로그램을 썼다 : http://pastie.org/5356931 – Vulcan
나는 그것을 다만 파악하고 당신의 풀은 그것을 재확인했다. 클래스를 정적으로 가져와야합니다. 'pageableRequestMapping.getClass' 대신'PageableRequestMapping.class'를 사용해야합니다. 나는 왜 클래스를 인스턴스로부터 얻는 것이 정적으로 클래스에 접근하는 것과 다른지 궁금하다. 위대한 답변 주셔서 감사합니다, 나는 그것을 감사드립니다. –