标签: lombok

使用Project Lombok是否安全?

如果您不知道Project Lombok可以帮助解决Java的一些烦恼,例如生成带注释的getter和setter,甚至像使用@Data生成简单的JavaBean.它可以真正帮助我,特别是在50个不同的事件对象中,你有多达7个不同的字段需要构建和使用getter隐藏.我可以删除近千行代码.

但是,我担心从长远来看,这将是一个令人遗憾的决定.##Java Freenode当我提到它时,Flamewars会在频道中爆发,提供代码片段会让可能的帮助者感到困惑,人们会抱怨缺少JavaDoc,而且未来的委托人可能会将其全部删除.我真的很喜欢积极的,但我担心的是消极的.

那么:在任何项目中使用Lombok都是安全的吗?积极影响是否值得消极?

java lombok

422
推荐指数
13
解决办法
12万
查看次数

在龙目岛省略一个Setter/Getter

我想在Lombok中使用数据类.由于它有大约十几个字段,我用它@Data来注释它以生成所有的setter和getter.但是,有一个特殊字段,我不希望实现访问器.

龙目岛如何省略这个领域?

java lombok

185
推荐指数
3
解决办法
7万
查看次数

当我在IntelliJ IDEA下使用Lombok时无法编译项目

我正在尝试在我使用IntelliJ IDEA 11开发的项目中使用Lombok.

为IDEA安装了第三方插件,看起来工作正常,因为IDEA会看到所有自动生成的方法/字段.

所以我有一个使用Slf4j的类.我这样注释了它

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestClass
{
    public TestClass()
    {
        log.info("Hello!");
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我构建我的项目时,编译器吐出:cannot find symbol variable log.

你能告诉我我在这里失踪了吗?

更新:事实证明它的RequestFactory注释过程失败了.

input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject}

annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave]

Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false.

cannot find symbol variable log
Run Code Online (Sandbox Code Playgroud)

关于变通方法的任何想法?

Update2:也许这不是读者想要听到的东西,但最终我转而使用Scala.

java intellij-idea lombok

185
推荐指数
12
解决办法
14万
查看次数

Lombok注释不能在Intellij想法下编译

  1. 我已经为intellij idea安装了插件(lombok-plugin-0.8.6-13).
  2. 将lombok.jar添加到classpath中
  3. 我可以在结构窗口找到吸气剂和固定剂.并且Intellij没有显示任何错误.
  4. 设置 - Lombok插件 - 验证了lombok的Intellij配置,它显示"IntelliJ的配置似乎没问题".

似乎一切都好.但是当我编译测试时,错误来了:找不到方法getXXX和setXXX.

我用IntelliJ打开了.class文件,发现没有setXXX和getXXX方法.

有人可以告诉我为什么吗?

  • 插件:龙目岛 - 插件-0.8.6-13
  • lombok.jar:1.14.0
  • 想法:13.0.2 for linux
  • JDK:1.7.0_21

java intellij-idea lombok

179
推荐指数
9
解决办法
16万
查看次数

升级到 JDK 21 后出现编译错误 - “NoSuchFieldError: JCImport does not have member field JCTree qualid”

升级到JDK 21后,我的Spring Boot项目出现以下编译错误:

Fatal error compiling: java.lang.NoSuchFieldError:
Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid'
Run Code Online (Sandbox Code Playgroud)

compiler-errors upgrade lombok spring-boot java-21

150
推荐指数
2
解决办法
12万
查看次数

lombok是如何工作的?

我今天遇到了lombok.
我非常想知道它是如何工作的.
Java Geek文章提供了一些线索,但对我来说并不是很清楚:

Java 6删除了apt并使javac能够管理注释,简化流程以获得更简单的单步计算.这是龙目岛采取的路径.

也许使用Java 6编译过程将是:javac - > apt - > lombok apt process - >读取类文件并使用ASM添加set/get方法?

你能告诉我关于机制的更多细节吗?

java annotations lombok

134
推荐指数
4
解决办法
3万
查看次数

龙目岛补充说,但是在Intellij IDEA中没有认出吸气剂和二传手

我在ubuntu上使用IntelliJ IDEA.我将lombok.jar添加到我的项目中并为IDEA安装了Lombok插件.我可以访问注释,但不会生成getter和setter.如果我尝试访问不存在的getter或setter方法,我会得到相同的错误.我能错过什么?

java intellij-idea lombok

116
推荐指数
9
解决办法
8万
查看次数

如何在Lombok中调用超级构造函数

我上课了

@Value
@NonFinal
public class A {
    int x;
    int y;
}
Run Code Online (Sandbox Code Playgroud)

我有另一个B级

@Value
public class B extends A {
    int z;
}
Run Code Online (Sandbox Code Playgroud)

lombok抛出错误,说它无法找到A()构造函数,显式调用它我想要lombok做的是给类b注释,使它生成以下代码:

public class B extends A {
    int z;
    public B( int x, int y, int z) {
        super( x , y );
        this.z = z;
    }
}
Run Code Online (Sandbox Code Playgroud)

我们在龙目岛有注释吗?

java lombok

95
推荐指数
5
解决办法
7万
查看次数

使用Lombok的@ Slf4j和Intellij构建:找不到符号日志

我有一个maven项目,在命令行没有问题的情况下构建.但是,当我使用IntelliJ构建它时,我收到错误:

java: FileName.java:89: cannot find symbol
symbol  : variable log
Run Code Online (Sandbox Code Playgroud)

java文件中没有定义或导入日志,但有一个

@Slf4j
final public class FileName {
Run Code Online (Sandbox Code Playgroud)

应该定义日志类的类体之前的语句.

在项目结构窗口中,类为:

Maven: org.slf4j:jcl-over-slf4j:1.6.1
Maven: org.slf4j:slf4j-api:1.6.6
Maven: org.slf4j:slf4j-log4j12:1.6.6
Maven: org.slf4j:slf4j-simple:1.6.6
Run Code Online (Sandbox Code Playgroud)

列在库下,表示已下载并可用.

知道为什么这会通过命令行与maven一起构建,而不是通过IntelliJ以及如何解决问题?

intellij-idea slf4j lombok

81
推荐指数
12
解决办法
8万
查看次数

龙目岛没有产生吸气剂和二传手

我只是试图将一个基于maven的项目发送到另一台计算机和HORROR,到处都是红色标记!!

但是mvn clean install建设得很好.

很快我注意到,龙目不产生getter和setter我的班,但是@Getter@Setter通过Eclipse中被正确识别.

两台计算机使用相同的Maven版本(3.0.4)但使用不同的JDK(1.6_23和1.6_33).他们都使用Eclipse Indigo 32位.

java eclipse maven lombok

73
推荐指数
9
解决办法
10万
查看次数