티스토리 뷰
error log
[kotlin] java.lang.NullPointerException: Parameter specified as non-null is null: method
daeuun 2023. 3. 5. 02:13에러메세지
java.lang.NullPointerException: Parameter specified as non-null is null: method com.beside.backend.api.controller.v1.member.MemberController.getSignupCount, parameter loginType
어디선가.. 파라미터에 null 으로 값이 들어왔다는 에러
어디서부터 null 이 들어간건지 null...찾으러간다.
원인
기간, 로그인 타입 별 회원가입한 사용자 수에 대한 통계를 내던 도중 발생 !!
기간은 반드시 들어가는 데이터고,
로그인 타입은 선택사항이다. 즉, value 값을 안쓰면 여기서 null 로 넘어간다는 의미.
에러 로그에 맞게 떡하니 여기서 null 값을 넘기고 있다.
해결
kotlin 은 null 처리가 참~ 예민한 만큼 처리하는 방법은 또 기막히게 편하다.
타입에 ? 연산자로 null 이 될 수 있음을 미리 선언한다.
controller
@GetMapping("/members/count")
fun getSignupCount(@RequestParam period: Period, loginType: LoginType?): ResponseEntity<ResultResponse> {
memberService.getSignupStatistics(period, loginType)
파라미터의 타입인 LoginType 에 ? 연산자를 붙여 null 이 들어올 수도 있다는 사실을 알려준다.
service
@Transactional(readOnly = true)
fun getSignupStatistics(period: Period, loginType: LoginType?): StatisticsResponse {
// ...
val count = memberCustomRepository.countSignupByPeriod(startDate, endDate, loginType)
return StatisticsResponse(startDate, endDate, count)
}
서비스로 받아주는 파라미터의 LoginType 에도 ? 연산자를 붙여주고
memberCustomerRepository
fun countSignupByPeriod(startDate: LocalDateTime, endDate:LocalDateTime, loginType: LoginType?): Long {
return from(members)
query 문에서 받아주는 파라미터까지 모두 동일하게 ? 를 붙여주면 null 처리를 할 수 있다.
한마디로 저 파라미터로 받아오는 값에는 모두 동일하게 ? 연산자로 null 이 들어올 수 있음을 알려주면 된다!
코틀린.. 널... 어쩜좋니
반응형
'error log' 카테고리의 다른 글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- FetchJoin
- JPA
- Linux
- 자바 어플리케이션 실행 과정
- QueryDSL
- dto 클래스 생성자
- array
- redisson 분산락
- Kotlin
- ChatGPT
- 스프링 스케줄링
- 오블완
- MultipleBagFetchException
- 배열
- 스프링오류
- Spring Security
- jvm warm-up 전략
- port
- Git
- MongoDB
- Cannot construct instance of
- n+1
- Java
- 티스토리챌린지
- junit5
- addFilterBefore
- checkout
- spring boot 3
- bucket4j
- 추상클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함