當我在基類中設定列舉時,我在使用 Lombok 時遇到了問題。
我有以下代碼:
@EqualsAndHashCode
@ToString
@Getter
@AllArgsConstructor
@NoArgsConstructor
public abstract class AdminCommand<T extends AdminCommandType, P> {
T type;
P payload;
}
T 是列舉型別,P 是我要生成的有效負載。我想基于 AdminCommand 生成類,子類有自己的集合型別。
我也使用這個介面來生成我的列舉:
public interface AdminCommandType {}
我正在嘗試使用以下方法擴展 Admin 類:
@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);
我收到一條錯誤訊息,說找不到建構式。
當我基于基類中的列舉制作 T 時,這很有效,但是當我基于介面制作 T 時,這會失敗。我錯過了什么嗎?
uj5u.com熱心網友回復:
Lombok @AllArgsConstructor 不呼叫 super() 所以你需要為派生類手動創建建構式
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/460187.html
