gpt4 book ai didi

尽管存在 NoArgsConstructor,但出现 java.lang.InstantiationException

转载 作者:行者123 更新时间:2023-11-30 05:51:19 26 4
gpt4 key购买 nike

当我想创建对象 TransLog 的实例时,即使我在类 TransLog< 中创建了无参数构造函数,也会抛出 InstantiationException/:

Caused by: java.lang.NoSuchMethodException: TransactionLogger$TransLog.<init>()
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.newInstance(Class.java:412)
... 20 more
@AllArgsConstructor
private class TransLog {
public TransLog() {
}

private int x;
private int y;
}

我以这种方式创建实例:

TransLog log = (TransLog) clazz.newInstance(); // clazz is TransLog.class

提前感谢您的帮助:)

最佳答案

您将 TransLog 类声明为 TransactionLogger 类中的非静态内部类。

这意味着TransLog类有一个隐式成员变量引用封闭的 TransactionLogger 实例,并且构造函数有一个该类型的隐式附加参数。

看来你不希望这样。因此,您需要将内部类声明为static:

@AllArgsConstructor
private static class TransLog {
public TransLog() {
}

private int x;
private int y;
}

关于尽管存在 NoArgsConstructor,但出现 java.lang.InstantiationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53875094/

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