java.lang.InstantiationException,尽管存在NoArgsConstructor



当我想创建对象TransLog的实例时,即使我在类TransLog中创建了一个No-Args构造函数,也会抛出一个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;
}

相关内容

  • 没有找到相关文章

最新更新