![](/img/trans.png)
[英]Gradle 'error: package com.google.common.collect does not exist'
[英]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.