繁体   English   中英

降级到Java 1.7会中断com.google.common.collect的使用

[英]downgrading to Java 1.7 breaks com.google.common.collect usage

我有一个在Java 1.8中运行良好的程序(实际上最初是为1.6编写的)。 我将pom.xml中的Java版本更改为1.7,以下行不再起作用:

import com.google.common.collect.Lists;

List<WekaFeature<Document>> myFeats = null;
if (abc == 123) {
    myFeats = Lists.newArrayList(new WekaFeature[]{new AFeature(), new BFeature(), new CFeature()});
}

错误是:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project myproject: Compilation failure: Compilation failure:
[ERROR] /tmp/build_7d4663fc58427c700939b5e36e6e7e1d/src/main/java/com/example/MyService.java:[252,49] incompatible types
[ERROR]   required: java.util.List<my.tools.feature.core.WekaFeature<my.tools.document.core.Document>>
[ERROR]   found:    java.util.ArrayList<my.tools.feature.core.WekaFeature>

我是Java的新手,并且对com.google.common.collect.Lists库不熟悉。 我知道List是一个接口,而ArrayList是一个实现,那么为什么它现在不起作用以及为什么在Java 1.8中起作用?

您可以使用旧版本的Guava库:

番石榴有两种口味。

JRE版本需要JDK 1.8或更高版本。 如果您需要对JDK 1.7或Android的支持,请使用Android风格。 您可以在android目录中找到Android Guava源代码。

或将您的代码更改为此代码:

myFeats = new ArrayList<>();
myFeats.add(new AFeature());
myFeats.add(new BFeature());
myFeats.add(new CFeature());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM