美文网首页
java8 in action中提供的源码导入idea后出现编译

java8 in action中提供的源码导入idea后出现编译

作者: 水石间 | 来源:发表于2018-11-20 12:58 被阅读0次

        最近看著名的《java8 in action》,发现在github上有提供书中源码,于是兴冲冲的将源代码导入到了idea,准备撸一把,结果导入完成之后,竟然有文件直接报错:

        Idea错误提示:

    Non-static method cannot be referenced froma static context Cannot resolve method 'flatMapping(<lambda expression>, java.util.stream.Collector<T,capture<?>,java.util.Set<T>>)'

        运行之后java compiler (javac)报错:

        我感觉应该是jdk版本问题,下载源码的时候确实没有看版本要求,我电脑上的是1.8.0_162的,可能低了,就又进github放java8源码的网页看了一下:

    github上要求的版本

        这样就不对了,我的jdk版本比要求的还要高一些,不应该不兼容上面提供的“1.8.0_05-b13”的。想到这本书的序言里面还留了作者在线,我就又去上面搜了一下,看有没有人遇到类似的问题,果然这次有结果

    manning上关于源码编译错误的解释

        MMP,原来是作者上传源码的时候忘记更新github上的jdk环境要求了。原来收集器中的flatMapping还有filtering在jdk8还没有提供能,怪不得报“Cannot resolve method 'flatMapping(<lambda expression>, java.util.stream.Collector<T,capture<?>,java.util.Set<T>>)';还有找不到符号”这些错误。至于“Non-static method cannot be referenced froma static context”这个错误提示是idea提供的:The error message is misleading due to implementation of method reference resolution in IntelliJ IDEA。我安装了jdk9,配置到idea,这些错误消失,运行也正常,终于可以开心的大干一场了。

    相关文章

      网友评论

          本文标题:java8 in action中提供的源码导入idea后出现编译

          本文链接:https://www.haomeiwen.com/subject/gybtqqtx.html