일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- Mutation testing
- standard input
- change refresh rate
- cli 만들기
- 코틀린 in
- Convariance
- Java
- standard output
- InnoDB
- image resizer with go
- 코틀린
- Pitest
- 객체지향
- ruby
- IntelliJ
- 돌연변이 테스팅
- 공짜블로그
- 코틀린 out
- 자바
- 코틀린 노트북
- resize image with go
- JPA
- 개인블로그 hugo
- output stream
- Test
- resizer 구현
- 의존성역전원칙
- MySQL
- kotlin
- hugo 로 블로그
Archives
- Today
- Total
Rlog
Kotlin Spring 에서 Required = false 대신 ?(nullable) 을 사용가능한 이유 본문
728x90
회사 코드를 짜다가 문득 생각이 하나 들었는데 Java 에서 @RequestParam(Required = false) 대신 Optional<Int> Long id 이런식으로 사용하면 동일하게 작동할 수 있다는 사실을 알고 있었다. 이것이 가능한 이유는 Spring Framework 의 RequestParamArgumentResolver 코드에 아래와 같은 코드가 존재한다.
여기서 중요한건 parameter.nestedIfOptional 인데 해당 Type 이 옵셔널인지 확인해주는 코드이다.
그래서 코틀린에서도 ?(nullable-type) 을 통해서 충분히 가능하지 않을까 생각하고 동일 위치에 디버그를 찍어보았다.
위의 디버깅 결과가 결론을 말해주는데
즉, 코틀린에서는 required = false 를 사용할 이유가 없다.
왜냐하면 isOptional() 이라는 메소드에서 Nullable 한 Type 의 값도 Optional 하게 체크되기 때문이다.
참고 하고 싶다면 Optional 은 아래와 같이 체크된다.
'Spring' 카테고리의 다른 글
기존에 있던 Object 를 Bean 으로 등록하는 방법 (0) | 2022.04.05 |
---|---|
[JPA] Transactional read only 일때 성능상 이점 (0) | 2022.03.21 |
Hibernate 1 차 Cache 에 대해서 알아보자 (0) | 2022.03.10 |
MySQL 으로 형태소 분석기 없는 자동완성만들기 (0) | 2022.02.24 |
Spring 에서 왜 Private Method 는 Cglib Proxy 에 포함이 되지않을까? (0) | 2022.02.22 |