小编Sho*_*rtz的帖子

Lombok @SuperBuilder 在具有通用原因错误的抽象类上:不兼容的类型

我有具有泛型类型的抽象类。它具有抽象的 toBuilder 方法,如下所示:在抽象类上使用 Lombok @SuperBuilder 注释和 toBuilder?

这是抽象类:

@Data
@SuperBuilder(toBuilder = true)
public abstract class TenantConfItem<T extends DeepCloneable<T>> {

    private final URN urn;

    private final Long version;

    private final T configData;

    public abstract TenantConfItemBuilder<T, ?, ?> toBuilder();

    public TenantConfItem<T> copy() {
        return this.toBuilder().build();
    }
}
Run Code Online (Sandbox Code Playgroud)

子类型:

@SuperBuilder(toBuilder = true)
@EqualsAndHashCode(callSuper = true)
public class PointsExpirationByEarnedDatePolicy extends TenantConfItem<ExpirationByEarnedDate> implements Singleton {

}
Run Code Online (Sandbox Code Playgroud)

我在这里使用它的构建器:

val policyBuilder = PointsExpirationByEarnedDatePolicy.builder()
                .version(0L)
                .configData(new ExpirationByEarnedDate(retentionDays));
Run Code Online (Sandbox Code Playgroud)

但我收到 configData 错误:

error: incompatible types: CAP#1 cannot be converted …
Run Code Online (Sandbox Code Playgroud)

java lombok

5
推荐指数
1
解决办法
5882
查看次数

标签 统计

java ×1

lombok ×1