fix: DataCopy

This commit is contained in:
SOR
2026-08-17 21:02:49 +08:00
parent 63dafaa568
commit 1938fb120b
2 changed files with 18 additions and 9 deletions
@@ -7,6 +7,7 @@ import kotlin.reflect.full.createInstance
import kotlin.reflect.full.declaredMemberProperties import kotlin.reflect.full.declaredMemberProperties
import kotlin.reflect.full.memberProperties import kotlin.reflect.full.memberProperties
import kotlin.reflect.jvm.isAccessible import kotlin.reflect.jvm.isAccessible
import kotlin.reflect.jvm.javaField
interface DataCopy { interface DataCopy {
fun <T : Any> toAnotherObject( fun <T : Any> toAnotherObject(
@@ -19,15 +20,21 @@ interface DataCopy {
return try { return try {
val vo = toClass.createInstance() val vo = toClass.createInstance()
for (prop in toClass.declaredMemberProperties) { for (prop in toClass.declaredMemberProperties) {
@Suppress("UNCHECKED_CAST")
val mutableProp = prop as? KMutableProperty1<Any, Any?> ?: continue
val value = when { val value = when {
sourceProps.containsKey(prop.name) -> sourceProps[prop.name] sourceProps.containsKey(prop.name) -> sourceProps[prop.name]
otherProperties.containsKey(prop.name) -> otherProperties[prop.name] otherProperties.containsKey(prop.name) -> otherProperties[prop.name]
else -> continue else -> continue
} }
@Suppress("UNCHECKED_CAST")
val mutableProp = prop as? KMutableProperty1<Any, Any?>
if (mutableProp != null) {
mutableProp.isAccessible = true mutableProp.isAccessible = true
mutableProp.set(vo, value) mutableProp.set(vo, value)
} else {
val field = prop.javaField ?: continue
field.isAccessible = true
field.set(vo, value)
}
} }
vo vo
} catch (e: ReflectiveOperationException) { } catch (e: ReflectiveOperationException) {
@@ -104,6 +104,8 @@ class JwtUtils(
return cal.time return cal.time
} }
fun convertToToken(headerToken: String?): String? = fun convertToToken(headerToken: String?): String? {
headerToken?.replace("Bearer ", "") val token = headerToken?.replace("Bearer ", "")?.trim()
return token?.takeIf { it.isNotEmpty() }
}
} }