From 18ca7ec640b9e3461626f32f805fa0f38ad665cb Mon Sep 17 00:00:00 2001 From: Yu Jin Date: Tue, 3 Mar 2026 10:39:59 +0900 Subject: [PATCH 1/2] fix: MealReviewListResponse$DataList$$serializer.deserialize --- .../data/remote/dto/response/MealReviewListResponse.kt | 10 +++++----- .../data/remote/dto/response/MenuReviewListResponse.kt | 6 +++--- .../data/remote/dto/response/MyReviewListResponse.kt | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealReviewListResponse.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealReviewListResponse.kt index b33adb81d..e2d4cdb5c 100644 --- a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealReviewListResponse.kt +++ b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealReviewListResponse.kt @@ -8,19 +8,19 @@ import kotlinx.serialization.Serializable data class MealReviewListResponse( @SerialName("numberOfElements") val numberOfElements: Int? = null, @SerialName("hasNext") val hasNext: Boolean? = null, - @SerialName("dataList") val dataList: List = arrayListOf() + @SerialName("dataList") val dataList: List = listOf() ) { @Serializable data class DataList( @SerialName("reviewId") val reviewId: Long? = null, - @SerialName("menuList") val menuList: List = arrayListOf(), + @SerialName("menuList") val menuList: List = listOf(), @SerialName("writerId") val writerId: Long? = null, @SerialName("isWriter") val isWriter: Boolean? = null, @SerialName("writerNickname") val writerNickname: String? = null, @SerialName("rating") val rating: Int? = null, @SerialName("writtenAt") val writtenAt: String? = null, @SerialName("content") val content: String? = null, - @SerialName("imageUrls") val imageUrls: List = arrayListOf(), + @SerialName("imageUrls") val imageUrls: List = listOf(), ) { @Serializable data class MenuList( @@ -38,7 +38,7 @@ fun MealReviewListResponse?.toDomain(): List { Review( reviewId = data.reviewId ?: -1L, isWriter = data.isWriter ?: false, - menuLikeInfoList = data.menuList.map { menu -> + menuLikeInfoList = data.menuList.filterNotNull().map { menu -> Review.MenuLikeInfo( menuId = menu.id ?: -1L, name = menu.name ?: "", @@ -49,7 +49,7 @@ fun MealReviewListResponse?.toDomain(): List { rating = data.rating ?: 0, writeDate = data.writtenAt ?: "", content = data.content ?: "", - imgUrl = data.imageUrls.firstOrNull(), + imgUrl = data.imageUrls.filterNotNull().firstOrNull(), ) } ?: emptyList() } diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MenuReviewListResponse.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MenuReviewListResponse.kt index 46aee3015..d289befb2 100644 --- a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MenuReviewListResponse.kt +++ b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MenuReviewListResponse.kt @@ -8,7 +8,7 @@ import kotlinx.serialization.Serializable data class MenuReviewListResponse( @SerialName("numberOfElements") val numberOfElements: Int? = null, @SerialName("hasNext") val hasNext: Boolean? = null, - @SerialName("dataList") val dataList: List = arrayListOf(), + @SerialName("dataList") val dataList: List = listOf(), ) { @Serializable data class DataList( @@ -20,7 +20,7 @@ data class MenuReviewListResponse( @SerialName("rating") val rating: Int? = null, @SerialName("writtenAt") val writtenAt: String? = null, @SerialName("content") val content: String? = null, - @SerialName("imageUrls") val imageUrls: List = arrayListOf(), + @SerialName("imageUrls") val imageUrls: List = listOf(), ) { @Serializable data class Menu( @@ -47,7 +47,7 @@ fun MenuReviewListResponse?.toDomain(): List { rating = data.rating ?: 0, writeDate = data.writtenAt ?: "", content = data.content ?: "", - imgUrl = data.imageUrls.firstOrNull(), + imgUrl = data.imageUrls.filterNotNull().firstOrNull(), ) } ?: emptyList() } diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MyReviewListResponse.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MyReviewListResponse.kt index bffd19db3..2c00121da 100644 --- a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MyReviewListResponse.kt +++ b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MyReviewListResponse.kt @@ -8,7 +8,7 @@ import kotlinx.serialization.Serializable data class MyReviewListResponse( @SerialName("numberOfElements") val numberOfElements: Int? = null, @SerialName("hasNext") val hasNext: Boolean? = null, - @SerialName("dataList") val dataList: ArrayList? = arrayListOf() + @SerialName("dataList") val dataList: List? = listOf() ) { @Serializable data class DataList( @@ -17,8 +17,8 @@ data class MyReviewListResponse( @SerialName("rating") val rating: Int? = null, @SerialName("writtenAt") val writtenAt: String? = null, @SerialName("content") val content: String? = null, - @SerialName("imageUrls") val imageUrls: ArrayList = arrayListOf(), - @SerialName("menuList") val menuList: ArrayList = arrayListOf() + @SerialName("imageUrls") val imageUrls: List = listOf(), + @SerialName("menuList") val menuList: List = listOf() ) { @Serializable data class MenuList( @@ -34,7 +34,7 @@ fun MyReviewListResponse?.toDomain(): List { Review( reviewId = data.reviewId ?: -1L, isWriter = true, - menuLikeInfoList = data.menuList.map { menu -> + menuLikeInfoList = data.menuList.filterNotNull().map { menu -> Review.MenuLikeInfo( menuId = menu.id ?: -1L, name = menu.name ?: "", @@ -45,7 +45,7 @@ fun MyReviewListResponse?.toDomain(): List { rating = data.rating ?: 0, writeDate = data.writtenAt ?: "", content = data.content ?: "", - imgUrl = data.imageUrls.firstOrNull(), + imgUrl = data.imageUrls.filterNotNull().firstOrNull(), ) } ?: emptyList() } \ No newline at end of file From f0b2b2635a5621711bd2124b6c6d596f3e2659a4 Mon Sep 17 00:00:00 2001 From: Yu Jin Date: Tue, 3 Mar 2026 11:04:24 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20firstOrNull=20{=20it=20!=3D=20null?= =?UTF-8?q?=20}=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit filterNotNull().firstOrNull()은 리스트 전체를 순회하여 새로운 리스트를 만든 후 첫 번째 원소를 찾습니다. firstOrNull { it != null }을 사용하면 null이 아닌 첫 번째 원소를 찾는 즉시 순회를 멈추므로 더 효율적입니다. --- .../android/data/remote/dto/response/MealReviewListResponse.kt | 2 +- .../android/data/remote/dto/response/MenuReviewListResponse.kt | 2 +- .../android/data/remote/dto/response/MyReviewListResponse.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealReviewListResponse.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealReviewListResponse.kt index e2d4cdb5c..203d48919 100644 --- a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealReviewListResponse.kt +++ b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MealReviewListResponse.kt @@ -49,7 +49,7 @@ fun MealReviewListResponse?.toDomain(): List { rating = data.rating ?: 0, writeDate = data.writtenAt ?: "", content = data.content ?: "", - imgUrl = data.imageUrls.filterNotNull().firstOrNull(), + imgUrl = data.imageUrls.firstOrNull { it != null }, ) } ?: emptyList() } diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MenuReviewListResponse.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MenuReviewListResponse.kt index d289befb2..ebf1e8904 100644 --- a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MenuReviewListResponse.kt +++ b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MenuReviewListResponse.kt @@ -47,7 +47,7 @@ fun MenuReviewListResponse?.toDomain(): List { rating = data.rating ?: 0, writeDate = data.writtenAt ?: "", content = data.content ?: "", - imgUrl = data.imageUrls.filterNotNull().firstOrNull(), + imgUrl = data.imageUrls.firstOrNull { it != null }, ) } ?: emptyList() } diff --git a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MyReviewListResponse.kt b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MyReviewListResponse.kt index 2c00121da..6ad9fb746 100644 --- a/app/src/main/java/com/eatssu/android/data/remote/dto/response/MyReviewListResponse.kt +++ b/app/src/main/java/com/eatssu/android/data/remote/dto/response/MyReviewListResponse.kt @@ -45,7 +45,7 @@ fun MyReviewListResponse?.toDomain(): List { rating = data.rating ?: 0, writeDate = data.writtenAt ?: "", content = data.content ?: "", - imgUrl = data.imageUrls.filterNotNull().firstOrNull(), + imgUrl = data.imageUrls.firstOrNull { it != null }, ) } ?: emptyList() } \ No newline at end of file