You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在带泛型的Java类中使用Lombok的@Builder注解?

问题原因与解决办法

问题根源

调用Response.builder()时,编译器没法自动推断出泛型T的具体类型,默认把它识别成Object,导致生成的ResponseBuilder<Object>的page方法只能接受List<Object>参数,和你传入的List<Article>类型不匹配,所以报错。

解决办法

方法一:显式指定泛型类型调用builder

在调用builder()时,明确标注泛型T为Article,让生成的Builder能正确识别page参数的类型:

long total = getTotalItemsCount();
List<Article> page = getPage();

Response<Article> response =
    Response.<Article>builder() // 显式指定泛型
        .status("ok")
        .total(total)
        .page(page); // 不再报错

方法二:通过变量类型推断间接指定

先把Builder实例赋值给带有明确泛型的变量,让编译器自动识别类型:

long total = getTotalItemsCount();
List<Article> page = getPage();

Response.ResponseBuilder<Article> builder = Response.builder();
Response<Article> response = builder
        .status("ok")
        .total(total)
        .page(page);

方法三:升级Lombok版本(可选)

如果你用的是较旧版本的Lombok,可能存在泛型推断不完善的问题。升级到最新稳定版后,部分场景下编译器能自动识别泛型类型,但显式指定泛型的方法依然是最稳妥的方案。

内容的提问来源于stack exchange,提问作者user1034461

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 19:51:00