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

Spring实战第6版练习中Ingredient类getType()方法未定义报错如何解决

报错原因及修复方案

核心报错原因

  • Ingredient类的成员属性定义与构造逻辑错误:你将id、name、type三个final属性在声明时直接赋予了固定默认值,同时自定义的构造函数没有任何参数赋值逻辑,传入的参数完全没有绑定到类的成员属性上。且final属性在声明时赋值后无法在构造函数中二次修改,即使Lombok正常生成getter方法,也无法获取到构造时传入的配料类型值。
  • 若确认Lombok安装完成仍提示找不到getType()方法,是IDE未开启注解处理功能,Lombok注解无法在编译期自动生成getter、setter方法,导致编译/运行时识别不到对应方法。

修复步骤

  1. 修正Ingredient类代码,删除错误的属性默认值与空实现的自定义构造函数,直接使用Lombok注解简化开发,修正后的代码如下:
package tacos;

import lombok.Data;
import lombok.RequiredArgsConstructor;

@Data
@RequiredArgsConstructor
public class Ingredient {
    private final String id;
    private final String name;
    private final Type type;
 
    public enum Type {
        WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE
    }
}

@RequiredArgsConstructor注解会自动为所有final属性生成对应的带参构造函数,无需手动编写构造逻辑。
2. 开启IDE的注解处理功能:

  • IDEA:打开Settings -> Build,Execution,Deployment -> Compiler -> Annotation Processors,勾选Enable annotation processing,保存后重新构建项目。
  • Eclipse:打开Window -> Preferences -> Maven -> Annotation Processing,勾选Automatically configure JDT APT,同时确认Lombok插件已正确安装到Eclipse中。
  1. 清理并重新构建项目,确保Lombok注解在编译期正常生成相关方法,此时getType()调用即可正常识别运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:09:02