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

降级到Java 1.7会中断com.google.common.collect的使用,java,Java,我有一个在Java1.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(

我有一个在Java1.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()});
}
import com.google.common.collect.list;
List myFeats=null;
如果(abc==123){
myFeats=Lists.newArrayList(新的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>
[ERROR]无法在项目myproject上执行目标org.apache.maven.plugins:maven编译器插件:3.1:compile(默认编译):编译失败:编译失败:
[错误]/tmp/build7D4663FC58427C700939B5E36E6E7E1D/src/main/java/com/example/MyService.java:[252,49]不兼容的类型
[错误]必需:java.util.List
找到[错误]:java.util.ArrayList

我是Java新手,对com.google.common.collect.Lists库不太熟悉。我知道List是一个接口,ArrayList是一个实现,所以为什么它现在不工作,为什么它在Java 1.8中工作?

您可以使用Guava library的早期版本:

番石榴有两种口味

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

或者将您的代码更改为以下代码:

myFeats = new ArrayList<>();
myFeats.add(new AFeature());
myFeats.add(new BFeature());
myFeats.add(new CFeature());
myFeats=newarraylist();
添加(新功能());
添加(新的BFeature());
添加(新的CFeature());

您可以使用先前版本的Guava library:

番石榴有两种口味

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

或者将您的代码更改为以下代码:

myFeats = new ArrayList<>();
myFeats.add(new AFeature());
myFeats.add(new BFeature());
myFeats.add(new CFeature());
myFeats=newarraylist();
添加(新功能());
添加(新的BFeature());
添加(新的CFeature());

谢谢。如果不调用
newwekafeature[]{}
,我会失去任何东西吗?这并不能真正解释的是:原来这个类是从一个“胖罐子”中包含的——它包含了几乎所有的程序代码,我只是将它的一小部分(从反编译代码中)复制到创建新程序的主方法中,它继续调用jar。就是在这个主方法中出现了错误。但是,如果我复制的代码在jar中工作,使用的可能是较旧版本的Guava,那么我不明白为什么它在主体中不工作,使用的是相同版本的Guava。谢谢。如果不调用
newwekafeature[]{}
,我会失去任何东西吗?这并不能真正解释的是:原来这个类是从一个“胖罐子”中包含的——它包含了几乎所有的程序代码,我只是将它的一小部分(从反编译代码中)复制到创建新程序的主方法中,它继续调用jar。就是在这个主方法中出现了错误。但是,如果我复制的代码在jar中工作,使用的可能是较旧版本的Guava,那么我不明白为什么它在主体上不工作,使用的是相同版本的Guava。