스프링부트 오류 - 글 세부페이지 맵핑 안 됨

김진아·2024년 9월 4일

스프링부트

목록 보기
5/6

오류위키링크

오류문

java.lang.IllegalArgumentException: Name for argument of type [java.lang.Integer] not specified
  , and parameter name information not available via reflection. 
Ensure that the compiler uses the '-parameters' flag.
  • 파라미터의 정보를 제대로 사용할 수 없음
  • 컴파일러를 수정하면 됨

오류의 이유 & 해결법

메서드 파라미터 이름이 명시되지 않았거나 리플렉션*을 통해 파라미터 이름 정보를 사용할 수 없을 때 발생한다.

방법 1. 아래의 코드를 Gradle파일에 삽입한다.

compileJava {
    options.compilerArgs << '-parameters'
}

방법 2 File>Settings>Build, Execution, Deployment>java Compiler에서 노란색 박스 안에 -parameters를 입력하고 적용한다.

나의 첫번째 오류 경우는 테스트 클래스가 작동이 안 되는 오류때문에 파일 인코딩을 중간에 인텔리제이로 바꿨었다. 처음부터 Gradle을 파일 인코딩으로 사용한 탓에 인텔리제이로 변경한게 파라미터를 제대로 인식하지 못하게 된 것 같다. 그래서 파일 인코딩을 다시 Gradle로 바꿔주었다.
그리고 두번째 오류 경우는 Gradle을 파일 인코딩으로 사용해도 일어나서 Gradle 파일에 위 삽입문을 삽입했다.
세번째 오류 경우는 Gradle을 고쳤음에도 불구하고 다시 오류가 나서 방법2를 사용했다.



단어

  • *리플렉션 : 자바 언어의 일부로, 표준 라이브러리의 기능이다. 런타임에 클래스, 메서드, 필드 등의 정보를 동적으로 검사하고 수정할 수 있게 해준다. 리플렉션을 통해 자바 코드가 클래스를 직접적으로 접근하지 않고도 객체의 메타데이터에 접근하거나 동적으로 메서드를 호출하는 등의 작업을 수행할 수 있다.
profile
https://develop-chick.tistory.com/ 첫번째 블로그

0개의 댓글