자바 냉 지식:자바 8 반사 접근 방법 파라미터

1450 단어 JavaReflection
자바 에서 Reflection API 를 사용 하여 구조 방법 이나 일반적인 방법의 매개 변수 이름 을 가 져 오 는 것 은 비교적 번 거 로 운 일이 고 자바 8 은 자바.lang.reflect.Parameter 류 를 제공 하 며 매개 변수 이름과 수정자 에 대한 정 보 를 제공 합 니 다.자바 8 이전에 우 리 는 방법 이나 구조 함수 의 매개 변수 이름 을 직접 가 져 올 수 없습니다.물론 매개 변수 이름 이 사용 가능 한 지 여 부 를 검증 하 는 편리 한 방법 이 추가 되 었 습 니 다.
public class BookService {
	public void buildBook(String bookName, Integer bookPrice) {
	}
}
public static void main(String[] args) throws NoSuchMethodException, SecurityException     {
	Method[] methods = BookService.class.getDeclaredMethods();
	for (Method method : methods) {
		for (Parameter p : parameters) {
			System.out.println("f1: "+p.getName());//  :arg0、arg1
			if (p.isNamePresent()) {//   false
				System.out.println(p.getName());
			}
		}
	}
}

이 럴 때 어떻게 터 뜨리 냐 고 물 어 볼 거 야?
해결 방법
방법 명 을 컴 파일 한 후에 잃 어 버 렸 으 니 잃 어 버 리 지 않도록 할 수 있 습 니까?그 때 는 있 었 고 자바 c-parameters 명령 으로 해결 할 수 있 었 습 니 다.maven 프로젝트 에서 지정 할 수 있 습 니 다:
    org.apache.maven.plugins     maven-compiler-plugin                         -parameters            
해결 방법
spring 프레임 워 크 소스 코드 를 잘 아 는 어린이 부츠 도 분명 알 고 있 을 것 입 니 다.방문 방법의 매개 변수 이름 에 대한 수요 가 있 을 것 입 니 다.어떻게 해결 하 시 겠 습 니까?그것 은 교묘 한 방식 을 채택 하여 매개 변수 이름 앞 에 주 해 를 지정 하여 해결 하 였 으 며,물론 이것 도 비교적 좋 은 방식 이 아니다.
public String info(@RequestParam(value="key") String key) {
} 

자 료 를 참조 하 다
Java8 Reflection Access to Parameter Names of Method

좋은 웹페이지 즐겨찾기