首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jshell中使用Lombok?

如何在jshell中使用Lombok?
EN

Stack Overflow用户
提问于 2022-10-16 03:16:48
回答 2查看 69关注 0票数 2

如何在JShell中使用Lombok注释?

我试过了

代码语言:javascript
复制
* jshell --class-path lombok.jar
jshell> import lombok.*
jshell> @Data class Person { String name; String address; }
|  created class Person
jshell> new Person()
$3 ==> Person@6f7fd0e6
jshell> $3.setName("Hi")
|  Error:
|  cannot find symbol
|    symbol:   method setName(java.lang.String)
|  $3.setName("Hi")
|  ^--------^
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-16 03:42:32

恐怕行不通。JShell不支持注释处理器,因为要使Lombok注释按照您的预期工作,就需要这样做。

请参阅JDK-8213600 - JShell编译没有考虑到隆布克的注释处理器。

有关解决方法,请参见https://stackoverflow.com/a/74084467/139985或bug报告本身。

基本上,您需要在jshell之外编译Lombok代码,然后将编译的类导入到jshell会话中。

票数 2
EN

Stack Overflow用户

发布于 2022-10-16 03:45:33

目前不可能像这个错误报告所描述的那样。

这里提到的解决方法是在外部编译您的类。为此,您基本上必须遵循以下步骤:

  1. 创建一些目录,例如com/example
  2. Person类放在该目录下。
代码语言:javascript
复制
package com.example;

import lombok.*;

@Data
public class Person {
    private String name;
    private int age;
}
  1. 用以下方法编译类:
代码语言:javascript
复制
javac -cp lombok.jar com/example/Person.java 
  1. 使用以下内容创建存档:
代码语言:javascript
复制
jar -cf person.jar com/
  1. 运行JShell:
代码语言:javascript
复制
jshell --class-path "person.jar:lombok.jar"
  1. 创建一个Person
代码语言:javascript
复制
> import com.example.*;
> var p = new Person();

还请注意,JShell不能访问默认包中的类(如描述的这里),这就是为什么我们将Person放在com.example中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74084364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档