相关疑难解决方法(0)

Java泛型在Eclipse中编译,但不在javac中编译

我必须发现我的项目中有Java代码,它在Eclipse中编译并运行良好,但在javac中抛出了编译错误.

一个独立的片段:

import java.util.HashSet;
import java.util.Set;

public class Main {

    public static void main(String[] args) {
    Set<Integer> setOfInts = new HashSet<Integer>();
    Set<Object> setOfObjects = covariantSet(setOfInts);
    }

    public static <S, T extends S> Set<S> covariantSet(Set<T> set) {
    return new HashSet<S>(set);
    }

}
Run Code Online (Sandbox Code Playgroud)

在javac中编译返回:

Main.java:10: incompatible types
found   : java.util.Set<java.lang.Integer>
required: java.util.Set<java.lang.Object>
    Set<Object> setOfObjects = covariantSet(setOfInts);
                                           ^
Run Code Online (Sandbox Code Playgroud)

此错误现在阻止在Maven中构建项目.由于Eclipse编译器构建得更宽容,我现在必须假设片段的定义和用法如上所述,静态方法是无效的Java?

java eclipse compiler-construction generics javac

15
推荐指数
2
解决办法
2612
查看次数

标签 统计

compiler-construction ×1

eclipse ×1

generics ×1

java ×1

javac ×1