Skip to content
This repository was archived by the owner on Jan 20, 2023. It is now read-only.

Commit 5f313dd

Browse files
committed
初期化済みフィールドを無視する処理を追加
1 parent 40e627d commit 5f313dd

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/main/kotlin/com/mapk/kmapper/KMapper.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,11 @@ class KMapper<T : Any> private constructor(
6565
javaGetter.isAccessible = true
6666

6767
val tempCache = { value: Any, bucket: ArgumentBucket ->
68-
// javaGetterを呼び出す方が高速
69-
bucket.putIfAbsent(param.param, javaGetter.invoke(value)?.let { param.mapObject(it) })
68+
// 初期化済みであれば高コストな取得処理は行わない
69+
if (!bucket.containsKey(param.param)) {
70+
// javaGetterを呼び出す方が高速
71+
bucket.putIfAbsent(param.param, javaGetter.invoke(value)?.let { param.mapObject(it) })
72+
}
7073
}
7174
tempCache(src, argumentBucket)
7275
tempCacheArrayList.add(tempCache)

0 commit comments

Comments
 (0)