diff --git a/database/src/main/kotlin/cn/tursom/database/TypeAdapterFactory.kt b/database/src/main/kotlin/cn/tursom/database/TypeAdapterFactory.kt index 3f9fbd1..96383e0 100644 --- a/database/src/main/kotlin/cn/tursom/database/TypeAdapterFactory.kt +++ b/database/src/main/kotlin/cn/tursom/database/TypeAdapterFactory.kt @@ -12,7 +12,6 @@ import kotlin.reflect.full.isSubclassOf object TypeAdapterFactory { private val adapterMap = ConcurrentSkipListMap>>() - private val adapterQueue = ConcurrentLinkedQueue>() init { scanPackage("cn.tursom.database.typeadapter") @@ -29,8 +28,11 @@ object TypeAdapterFactory { return queue!! } - fun scanPackage(pkg: String) { - getClassByPackage(pkg).forEach { + fun scanPackage( + pkg: String, + classLoader: ClassLoader = this.javaClass.classLoader + ) { + classLoader.getClassByPackage(pkg).forEach { try { val clazz = Class.forName(it).kotlin if (clazz.isSubclassOf(TypeAdapter::class)) {