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

    科技2025-10-16  8

    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。

     

    Processed: 0.010, SQL: 8