gpt4 book ai didi

java - 无法将实体类放入 getEntityClass 管理器方法中

转载 作者:行者123 更新时间:2023-12-02 10:45:49 26 4
gpt4 key购买 nike

我想创建一个将实现 SimpleManager 的 ClientLimitHistoryManager,但 getEntityClass() 存在问题,因为我尝试返回的类与编译器不符。

abstract class SimpleManager<T> {
@PersistenceContext
open lateinit var entityManager: EntityManager

abstract fun <T> getEntityClass(): Class<T>
}



@Stateless
open class ClientLimitHistoryManager : SimpleManager<ClientLimit>() {
override fun <ClientLimit> getEntityClass(): Class<ClientLimit> {
return ClientLimit::class
}
}

screen with error

我也尝试过使用 ClientLimit::class.java 但没有更好的结果。

是否可以在 Kotlin 中以某种方式做到这一点?

最佳答案

您已多次声明泛型。这就是具体化类型参数错误的来源。

    abstract fun <T> getEntityClass(): Class<T>

应更改为:

    abstract fun getEntityClass(): Class<T>

因为当你写 abstract class SimpleManager<T> 时 T 泛型已经被声明了

然后通过更改来修复子类

override fun <ClientLimit> getEntityClass(): Class<ClientLimit> {
return ClientLimit::class
}

override fun getEntityClass(): Class<ClientLimit> {
return ClientLimit::class
}

这样,具体化类型参数错误就会消失,并且您将留下“类型不匹配”。错误。

更改 ClientLimit::classClientLimit::class.java现在就可以开始了。

关于java - 无法将实体类放入 getEntityClass 管理器方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52593547/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com