我正在使用以下代码实例化一个新类:
Class<?> clazz; Object object;
clazz = Class.forname(package.ClassName);//dynamic classes
object = clazz.newInstance();现在的问题是,每当我运行这段代码时,它就会给我一个NoSuchMethodExeception : package.ClassName.
ClassName有一个参数,我不能删除它,因为它是必需的。
我尝试删除该参数,然后错误消失(参数必须始终在那里,因为某种原因)。
它为什么会这样工作?
发布于 2022-03-14 11:59:42
我在kotlin JPA也有类似的问题。当我使用需要DTO的JPAQueryFactory Projections.fields时,如下所示。
class AdCampaignDailyStatDTO @QueryProjection constructor(
var id: Long?,
var accountId: Long?,
var name: String?,
var type: AdCampaignType?,
var onOff: OnOffType?,
var status: AdCampaignStatus?,
var budgetLimit: BigDecimal?但它和你一样发生了“java.lang.NoSuchMethodException”。尽管许多示例代码指导了这一点。
com.querydsl.core.types.ExpressionException: com.navercorp.groupn.gpc.entity.stats.dto.AdCampaignDailyStatDTO] with root cause
java.lang.NoSuchMethodException: com.navercorp.groupn.gpc.entity.stats.dto.AdCampaignDailyStatDTO.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3349)
at java.base/java.lang.Class.newInstance(Class.java:556)
at com.querydsl.core.types.QBean.create(QBean.java:255)
at com.querydsl.core.types.QBean.newInstance(QBean.java:222)最后我解决了下面的问题。这意味着DTO代码需要在我的情况下必须定义'null‘的属性初始值。就像这样。
class AdCampaignDailyStatDTO @QueryProjection constructor(
var id: Long? = null,
var accountId: Long? = null,
var name: String? = null,
var type: AdCampaignType? = null,
var onOff: OnOffType? = null,
var status: AdCampaignStatus? = null,
var budgetLimit: BigDecimal? = null
)https://stackoverflow.com/questions/58910990
复制相似问题