오늘할일]
코드카타
3차과제 2단계
=================================================================
[오늘 발생한 오류 및 해결]
/*
사진을 찍지 못해 예시
*/
public void Main() {
System.out.println();_<-이 곳에 빨간 줄
}
내 코드에는 반환타입 확인해 일치시켜 주었고 문제가 없을 코드인데 계속 빨간줄이 생겼다.
원인을 계속 고칠려고 원인이 없는 반환 타입이나 메소드로 찾고 있었다 그래서 튜터님께 찾아가서 같이 화면 공유를 통해 문제를 찾아가던 중 튜터님께 IDE 캐시 문제 일수도 있으니 Invalidate Caches 를 들어가서 체크 후 재시작을 해보라고 하셨다.
재시작 해보니까 빨간 줄이 사라지고 정상 작동이 되었다.
알아보니 IDE의 캐시가 손상되어 올바른 오류검출이 되지 않을수 있다고 한다.
created_at은 생성시간으로 생성할때 값을 가지고 있지만 updated_at은 수정을 해주지 않으면 수정시간이 null이다
근데 위 코드 방식 처럼 Date으로 이컬럼을 가지고 오면 null 이므로 오류가 발생한다.
생각한방법: 애초에 날짜데이터를 String 으로 변경해서 포맷을 요구사항에 맞는 포맷을 하기
=> 그래도 null은 해결되지 않음
해결 방법 : Optional.ofNullable() 사용
Optional.ofNullable() 는 주어진 값이 null 인지 아닌지 확인한다.
값이 null이 아니면 해당값을 가지는 optional객체를 반환하고 값이 null이면 빈 Optional객체를 반환한다고 한다.
그래서 적용 해보면Optional.ofNullable(rs.getDate("update_at")).map(Date::LocalDate).orElse(null)
updated_at의 컬럼의 값이 널이 아니면 LocalDate타입으로 반환해주고 널이면 null로 반환 시켜주어서 이문제를 해결 할수 있었다.
'TIL' 카테고리의 다른 글
[TIL] 스파르타 백엔드 캠프 & 트러블 슈팅 (1) | 2024.11.15 |
---|---|
[TIL] 스파르타 백엔드 캠프 & 트러블 슈팅 (1) | 2024.11.08 |
[TIL] 스파르타 백엔드 캠프 (0) | 2024.11.05 |
[TIL] 스파르타 백엔드 캠프 강의 (0) | 2024.11.03 |
[TIL] 스파르타 백엔드 캠프 24일차 (0) | 2024.11.01 |