我有以下代码:
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>
答案 0 :(得分:2)
Eclipse使用与ant将使用的常规javac不同的编译器。然而,更可能是使用不同版本的Java的问题,例如5.0 vs 6
编辑:尝试以下
SortedSetByDoubleValue<String,Double> set =
SortedSetByDoubleValue<String,Double>.create();