文档章节

Eclipse - 安装lombok后注解无效

o
 osc_gu9d45li
发布于 2019/04/20 20:19
字数 792
阅读 59
收藏 0

精选30+云产品,助力企业轻松上云!>>>

安装 lombok

lombok 的安装过程挺简单的,网上已经有很多相关的博客,这里就不在多说了,可以参考这篇:eclipse集成lombok注解不起作用 但是我按照网上的方式安装之后,注解一直不起作用,运行的时候一直报找不到getter,setter方法。期间我以为是自己安装的不对,反反复复安装了几次还是不行,找了很多博客看,发现其实安装的方法都是一样的,在排除了有可能是jar包的版本与Eclipse的版本不兼容的问题后,我想可能问题不在这里,lombok我应该是已经安装成功了的,但是为什么不起作用呢? 其实这里面有个坑,博客里面都有说,在安装好lombok后,需要重新启动Eclipse,重新编译 项目。注解不起作用的关键就在于你是如何编译项目的。

编译项目

  1. 我们一般编译项目的方式可能是选中项目然后点projecg -> clean

uploading-image-461886.png

但是这种编译项目的方式是不行的,我们把编译后生成的.class文件反编译一下看看。

这是文件源码:

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum ResponseCode {
	SUCCESS(10001,"请求成功"),
	ERROR(10000,"请求失败"),
	ILLEGAL_ARGUMENTS(1,"请求参数不合法")
	;
	
	private final Integer code;
	private final String desc;	
}

class 文件反编译后是这个样子

public enum ResponseCode
{
  SUCCESS(Integer.valueOf(10001), "请求成功"), 
  ERROR(Integer.valueOf(10000), "请求失败"), 
  ILLEGAL_ARGUMENTS(Integer.valueOf(1), "请求参数不合法");
  
  private final Integer code;
  private final String desc;

}

我们可以看到,反编译后的文件里面并没有生成getter ,setter方法还有构造方法

  1. 我们用另外一种方式来编译项目看看,即用maven的编译插件来编译项目,使用命令 clean compile

uploading-image-798516.png

uploading-image-289787.png

再来看看,class文件是这样的

package com.beautifulsoup.chengfeng.enums;

public enum ResponseCode
{
  SUCCESS(Integer.valueOf(10001), "请求成功"), 
  ERROR(Integer.valueOf(10000), "请求失败"), 
  ILLEGAL_ARGUMENTS(Integer.valueOf(1), "请求参数不合法");
  
  private final Integer code;
  private final String desc;
  
  private ResponseCode(Integer code, String desc)
  {
    this.code = code;this.desc = desc;
  }
  
  public Integer getCode() { return this.code; }
  public String getDesc() { return this.desc; }
}

可以看到我们需要的方法都生成了!

编译时如果报如下的错误:

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.436 s
[INFO] Finished at: 2017-06-28T11:16:07+08:00
[INFO] Final Memory: 10M/151M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project manage: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[ERROR] -> [Help 1]

可以用如下的博客解决,亲测可用! 关于Maven项目build时出现No compiler is provided in this environment的处理

其它

  1. 建议把Eclipse的自动编译关掉,因为我们在修改一个带有lomok注解类并ctrl + s 以后是Eclipse的方式编译的,这里个生成的class文件里面又没有我们要的方法了。

uploading-image-840001.png

  1. 另外如果你修改一个带有lomok注解的类并保存了,用mevaen编译以后显示有红叉,只要update 一下项目就好了。

uploading-image-949677.png

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
eclipse 使用lombok 出现的问题

最近在学习spring boot的时候遇到了一个注解@Data,使用这个注解可以免去手动重写属性的@getter @setter 方法以及@toString()方法等等,甚是方便。 在看视频学校的时候使用的是Idea,使用的时...

osc_nmvhliqx
2018/09/18
4
0
Eclipse - lombok的@Slf4j和@Data无效

问题与分析 最近开始学习spring-boot框架,我用的是Eclipse,然后发现在使用到了lombok的@Data注解时,Eclipse会编译错误。@Data的作用是自动生成toString方法和setter/getter方法,可以减少...

horizon~~~
05/05
0
0
在eclipse中安装使用lombok插件

Eclipse安装lombok插件 1、下载lombok.jar,lombok.jar官方下载地址:https://projectlombok.org/download 2、双击下载好的lombak.jar,安装步骤如下: 2-1.关闭弹出的警告窗口,点击 Specif...

osc_ckub9v3l
2019/11/17
2
0
java IDE 中安装 lombok plugin 插件,并使用 @Slf4j 注解打印日志初体验

lombok 插件介绍: IntelliJ IDEA官方插件页面:https://plugins.jetbrains.com/plugin/6317-lombok-plugin 使用lombok之后,省去了许多没必要的get,set,toString,equals,hashCode代码,...

osc_a7rsiqz6
2018/05/24
3
0
eclipse中Lombok注解无效

问题现象:eclipse中使用lombok的@Date,引用get方法时,报错。 解决方案: 在lombok官网(https://www.projectlombok.org/download)下载,或者找项目正在用的版本的lombok.jar,放到eclip...

osc_t8hom09j
2019/06/19
2
0

没有更多内容

加载失败,请刷新页面

加载更多

Hacker News 简讯 2020-07-10

更新时间: 2020-07-10 01:15 US Supreme Court deems half of Oklahoma a Native American Reservation - (reuters.com) 美国最高法院认为俄克拉荷马州的一半是印第安人保留地 得分:131 | 评...

FalconChen
54分钟前
16
0
OSChina 周五乱弹 —— 求求你吃了我吧,不要再玩弄食物的感情了

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :张喆的单曲《陷阱 》 这首歌已经在网易找不到原唱了,不知道被哪家买了版权。#今日歌曲推荐# 《陷阱 》- 张喆 手机党少年们想听歌...

小小编辑
今天
26
1
清华陈文光教授:AI 超算基准测试的最新探索和实践。

道翰天琼认知智能平台为您揭秘新一代人工智能。 无规矩不成方圆。放在超级计算机的研发领域,没有一个大家普遍接受的算力评测指标,便难以推动超算迅猛发展。 而现在伴随着人工智能的发展,大...

jackli2020
今天
7
0
@RequestMapping, consumes 提交简单有意思的测试

getParm @GetMapping("getParm")public Result getParm(String id){ System.out.println(); return ResultFactory.success(id);} 等同于 == bodyParm @PostMapping("bodyParm......

莫库什勒
今天
25
0
63. Unique Paths II

题目: 63. Unique Paths II A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The robot can only move either down or right at any p......

JiaMing
今天
55
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部