簡體   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