关于在idea中使用lambda遇到的一个巨坑

问题描述

学习lambda过程中的时候,想要通过初步编写匿名内部类的方式,然后转换lambda的方式来慢慢熟悉lambda表达式的语法,发现自己成功编写了匿名内部类,但是idea却没有办法转换成lambda

如下图所示

1 单个文件不能使用lambda的转换

在这里插入图片描述
2 两个一样的文件一个可以使用,一个就不行

在这里插入图片描述
ps: 注意两边Runnable的字体的颜色,一个是实体,一个是透明的.
解决过程

1 需要确保安装的jdk是jdk1.8或者更高版本,并且在idea中成 功配置
2 在pom.xml中增加一个插件,使得maven支持jdk1.8语法

<build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

3.1 修改项目结构中相关的jdk版本和语言等级

在这里插入图片描述
3.2 Java compiler的level为1.8
在这里插入图片描述
重启idea后,发现依然无法使用lambda的转换功能,之后怀疑是idea插件影响了,再一次卸载掉相关的插件,清理idea的缓存重启,并且更换idea的版本,最终发现依然不行.

经过最终的尝试发现问题的核心关键以下位置的修改:
在这里插入图片描述
这里的语言检查级别直接会影响到lambda的快捷键转换.

最后修改完毕以后 两个文件都可以使用lambda表达式的转换了 ,如下图所示 :

在这里插入图片描述

如果哪里写的不对,希望广大业内大佬批评指正,后面慢慢完善.谢谢 !

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值