eclipse没有显示编译错误,但是ant在编译时失败了

时间:2011-04-10 07:46:13

标签: java eclipse generics ant

我有以下代码:

SortedSetByDoubleValue<String,Double> set = SortedSetByDoubleValue.create();

它在eclipse上没有编译错误,但是当用ant运行javac时,它在编译时失败了:

[javac] .../TestSortedSetByComparable.java:55: incompatible types; no instance(s) of type variable(s) E,T exist so that ....SortedSetByDoubleValue<E,T> conforms to ....SortedSetByDoubleValue<java.lang.String,java.lang.Double>
    [javac] found   : <E,T>....SortedSetByDoubleValue<E,T>
    [javac] required: ....SortedSetByDoubleValue<java.lang.String,java.lang.Double>
    [javac]             SortedSetByDoubleValue<String,Double> set = SortedSetByDoubleValue.create();
    [javac]                                                                                      ^
    [javac] 5 errors

然而,在将代码更改为:

SortedSetByDoubleValue<String,Double> set = SortedSetByDoubleValue.<String,Double>create();

编译时没有错误。

蚂蚁目标是:

<javac srcdir="." fork="yes" executable="/usr/java/1.6.0.10/bin/javac" verbose="yes" destdir="build" debug="on" failonerror="true" source="1.6">
            <classpath>
                <fileset dir="../ant/dist">
                    <include name="**/*.jar" />
                </fileset>
                <fileset dir="../external/powermock-1.2.5/">
                        <include name="**/*.jar" />
                </fileset>
                <pathelement path="${external_jars}" />
            </classpath>
        </javac>

1 个答案:

答案 0 :(得分:2)

Eclipse使用与ant将使用的常规javac不同的编译器。然而,更可能是使用不同版本的Java的问题,例如5.0 vs 6

编辑:尝试以下

SortedSetByDoubleValue<String,Double> set =
    SortedSetByDoubleValue<String,Double>.create();
相关问题