我有一个在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中工作呢?
答案 0 :(得分:2)
您可以使用以前版本的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());