Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- LPOS
- formik
- fake jwt
- hbase 저장공간 설정
- pinpoint
- ㅉ때
- 논블록킹 성능
- pinpoint 2.5.3
- 더티체킹
- Armeria
- UnsupportedOperationException
- nodeSelector
- save/update
- Ingress Controller Fake
- 개발 어렵당.ㅠ
- 애자일 싫타
- 플루터
- OIDC
- nGinder
- intellij
- reids
- 스프링Boot 개발환경
- 월급루팡 일지
- jsonMarshaller
- R2DBC Paging
- 노드간 통신
- jar 배포
- Loki 로그
- 핀포인트
- RedirectService
Archives
- Today
- Total
대머리개발자
[코틀린]null 처리 재미지다! 본문
728x90
fun create(targetId: Long, userId:String? = "loginId", ..){
..
}
userId가 할당되지 않으면 초기값으로 "loginId"를 바인딩한다.
그럼 당연히 userId는 Null일 수가 없다고 생각하지만 null 값이 바인딩 될 수 있다.!!
그렇기 때문에 비지니스로직에서 userId를 사용할 때는 userId가 명백히 널이 아님을 다시 명시해야 한다.
fun create(targetId: Long, userId:String? = "loginId", ..){
..
userId!!
...existByTargetIdAndUserId(targetId, userId, ..)
...updateTargetIdAndUserId(targetId, userId, ..)
}
이런 불편함으로 인해서 물음표(?)를 빼면 되지 않니?라고 이야기할 수 도 있겠다.
... create(targetId=targetID) -> (1)
... create(targetId=targetID, userId=userId) -> (2)
But 물음표를 빼면 무조건 2번 형태로 fun을 호출해야 한다. 뭔가 코틀린스럽지 못하다! ㅎ
var userId = "loginId"
....
... create(targetId=targetID, userId=userId)
재밌다!!
내가 경험했던바..
모든 오류의 90% 이상은 데이터의 정합성이 문제다. ㅋ
그런 문제들을을 컴파일 시점에서 체크해준다는것은 개발자들을 한층 더 편하게 해준다.
728x90
'개발이야기 > 코틀린' 카테고리의 다른 글
시크릿 컬럼 추가에 대한 말도 안 되는 고민 (0) | 2024.08.05 |
---|---|
데이터 정규화 (1) | 2024.05.17 |
멤버 변수 바인딩에 대한 고민 (2) | 2024.03.29 |
코루틴 조으다! (1) | 2024.03.19 |
아르메리아를 쓰자. (1) | 2024.03.15 |