매개변수 이름 얻어오기

정태규·2022년 11월 2일
1

매개변수 이름 얻어오는 방법

메인 메서드의 매개변수를 컴파일해보면, 매개변수의 타입은 저장하지만 매개변수의 이름은 저장하지 않고 arg0, arg1 이런식으로 나온다.
예를들어, void main(HttpServletRequest request, HttpServletResponse response) 라고 했을때, 앞의 HttpServletRequest와HttpServletResponse는 저장하짐나 뒤에 매개변수 이름은 저장하지 않는다.

이것을 저장하기 위해서는
javac에 -parameters라는 매개변수 이름 저장 옵션을 줘야한다.

1.8버전부터 추가 되어있다.

windows -> preferences -> java -> compiler 에 들어간다.
맨아래보면 store information about method parameters 항목이 있다.
이걸 체크해야하는데, 체크자체가 안되도록 되어있을수도 있다.
이 경우에는 맨 위쪽에 complier compliance level을 1.8 이상으로 해주면된다. 자바버전이 11이라면 11로 맞춰준다.

체크한 이후에도 똑같이 매개변수 이름이 저장이 되지 않는다면,
스프링 package explorer 창에서 JRE System Library 폴더에서 옆에써있는 버전을 확인한다. 만약 자기가 설치한 버전이 아니라면, pom.xml 을 들어간다.

pom.xml에서 properties를 확인한다. properties 바로 아래에 java-version이 자기버전에 맞게 숫자를 입력한다.

여기서 끝난게 아니다.
쭉 스크롤을 내려서
maven-complier-plugin을 찾는다. 여기에 보면 source와 target사이에 있는 숫자를 자기 버전에 맞게 바꿔줘야한다. 근데 그냥 숫자를 넣어버리면 나중에 버전 바뀌었을때, 또 바꿔줘야 함으로, 한번에 바뀔 수 있게 ${java-version}이라고 쳐준다.

이렇게하면, 위에서 properties의 값만 바꾸어줘도 밑에 값까지 자동으로 바뀌게된다.

그리고 pom.xml을 수정하면 프로젝트를 update해주어야 한다.
프로젝트에서 마우스 우클릭->Maven->update Project->OK

우리가 사용하는 mvc프로젝트는 메이븐을 통해서 관리하는데, pom.xml이 메이븐 설정파일이다.

매개변수 이름을 얻어오는데는 2가지 방법이 있다.
1. Reflection API : 이방법은 위와 같이 parameters 옵션을 설정하는 방법이고
2. classfile: class file을 읽어서 매개변수 이름을 얻어온다.

컴파일러는 1번을 시도하고 실패하면 2번도 시도한다.

0개의 댓글