如何在JShell中使用Lombok注解?实操遇setName方法报错求助
在JShell中使用Lombok注解的解决方案
问题出在JShell默认不会自动触发Lombok的注解处理器——Lombok需要在编译阶段通过注解处理器生成setName这类方法,仅通过--class-path引入lombok.jar只能让你导入注解,但不会触发代码生成。
解决步骤如下:
1. 正确启动JShell
启动时同时指定--class-path和--processor-path参数,两者都指向你的lombok.jar文件:
jshell --class-path lombok.jar --processor-path lombok.jar
如果lombok.jar不在当前目录,替换为完整文件路径即可。
2. 重新定义类并测试
进入JShell后,重新执行你的操作:
jshell> import lombok.* jshell> @Data class Person { String name; String address; } | created class Person jshell> var p = new Person() p ==> Person(name=null, address=null) jshell> p.setName("Hi") $3 ==> Person(name=Hi, address=null)
此时setName方法就能正常调用了。
备选方案:在JShell内部修改环境
如果已经进入JShell会话,可以用/env命令重新配置环境:
jshell> /env --class-path lombok.jar --processor-path lombok.jar | Setting new options and restoring state.
之后重新定义Person类即可生效。
内容的提问来源于stack exchange,提问作者andreoss
相关产品推荐
相关产品推荐

