找不到派生的 Lombok 构造函数 class

Cant find Lombok constructor for derived class

当我在基 class 中设置枚举时,我 运行 遇到了使用 Lombok 的问题。

我有以下代码:

@EqualsAndHashCode
@ToString
@Getter
@AllArgsConstructor
@NoArgsConstructor
public abstract class AdminCommand<T extends AdminCommandType, P>  {
  T type;
  P payload;

}

T是枚举类型,P是我要生成的payload。我想根据 AdminCommand 生成 classes,子 classes 有自己的集合类型。

我也在使用这个接口来生成我的枚举:

public interface AdminCommandType {}

我正在尝试使用以下方法扩展管理 class:

@EqualsAndHashCode
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class TestCommand<T extends AdminCommandType, O> extends AdminCommand {
  enum TestCommandType implements AdminCommandType {
    FOO
  }
}

当我尝试实例化一个版本的 TestCommand 时出现问题。

TestCommand<TestCommand.TestCommandType, "Any POJO Class"> testCommand
    = new TestCommand(TestCommand.TestCommandType.FOO, payload);

我收到一条错误消息,提示找不到构造函数。

当我基于基 class 中的枚举制作 T 时,这有效,但是当我基于接口制作 T 时,这失败了。我错过了什么吗?

Lombok @AllArgsConstructor 不调用 super() 因此您需要为派生手动创建构造函数 类