Flink本地IDEA使用scala编译报错出现could not find implicit value for evidence parameter

博客作者遇到了IDEA中运行Flink程序时,所有类集体报错的问题。尽管常见解决方案是导入Scala的隐式转换,但作者发现真正原因是Scala SDK版本与项目中使用的版本不一致。通过将Scala版本切换到2.12,问题得到解决。作者强调理解Scala SDK版本的重要性,特别是在使用Flink、Spark等依赖Scala版本的框架时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IDEA本地运行Flink程序报错,是突然一下所有的class都会有这个错。

查了不少博客都是一个套路

import org.apache.flink.streaming.api.scala._
import org.apache.flink.api.scala._

导入隐式转换。

但是其实如果你是一个经过transformation的程序,你不导入scala这个隐式转换,你的中间过程的JavaStream  需要转化这一关都过不去,更别提这个是运行时候报的错,而且是所有类一起报错。

所以,就查了下Scala的SDK,发现

但是pom.xml中的版本

问题来了,就是scala版本不一致导致的问题。

切换到2.12版本,问题解决。

心得:

1.scala这玩意比java要娇贵一些,毕竟还是转化为class.

2.一般隐式转换中如果没有导入,除非是老的IDEA版本,基本上都会在编译之前抛出小红线,比如streaming.scala._这个因为其中涉及到javaStream和scalaStream的转化。

3.使用scala,一定要搞明白自己的scalaSDK的版本,特别是flink或spark或kafka这些尾巴上带着scala版本号的,自己遇到scala这种问题,基本上都会去查一下scalaSDK。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值