Java异常 #匿名xxx不是抽象的, 并且未覆盖java.util.function.Predicate中的抽象方法test

1.异常现象

Maven install 的时候,出现异常:不是抽象的, 并且未覆盖java.util.function.Predicate中的抽象方法test(java.util.Map)

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project im-service: Compilation failure: Compilation failure: 
...
[296,147] <匿名com.wei.ping.service.report.manage.impl.XxxxImpl$1>不是抽象的, 并且未覆盖java.util.function.Predicate中的抽象方法test(java.util.Map)

 

2.排查分析

2.1. JDK版本有问题

确认项目 JDK 版本与所需 JDK 版本是否一致导致。比如项目的 pom.xml 中定义了 Java 版本为 1.8,但是实际 IDEA 中 maven run 的却是 JDK 1.7。

2.2. maven-compiler-plugin 插件配置有问题

确认 pom.xml 中是否有 maven-compiler-plugin 配置。并确认 plugins.plugin.configuration 的 source 标签配置(源代码使用的开发版本)和 target 标签配置(需要生成的目标class文件的编译版本)是否与项目 JDK 版本一致。

2.3. maven 安装目录下的 \maven\conf\settings.xml 文件的 maven.compiler.source 的设置版本有问题

确认 settings.xml 配置的 maven.compiler.source 版本是否与项目使用的版本一致或者兼容。

 

3.解决方案

3.1. 更换当前 JDK 版本为项目所需 JDK 版本即可。

3.2. pom 文件增加以下 maven-compiler-plugin 依赖,其配置项 source 与 target 需要和项目 JDK 版本一致:

...


    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.5.1
            
                1.8
                1.8
            
        
    

或者

    
        1.8
        1.8
        2.3.2
    

    ...

    
        
            
                
                org.apache.maven.plugins
                maven-compiler-plugin
                ${maven_compiler_plugin_version}
                
                    
                    ${java_source_version}
                    
                    ${java_target_version}
                    ${project.build.sourceEncoding}
                
            
        
    

3.3. 或者检查一下 maven 安装目录下的 \maven\conf\settings.xml 文件,看看 maven.compiler.source 设置的是哪个版本,是否与自己使用的版本一致或者兼容。

你可能感兴趣的:(Java,Java异常,maven,未覆盖抽象方法test)