Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 日食不';t显示编译错误,但ant编译失败_Java_Eclipse_Generics_Ant - Fatal编程技术网

Java 日食不';t显示编译错误,但ant编译失败

Java 日食不';t显示编译错误,但ant编译失败,java,eclipse,generics,ant,Java,Eclipse,Generics,Ant,我有以下代码: SortedSetByDoubleValue<String,Double> set = SortedSetByDoubleValue.create(); 但是,将代码更改为: SortedSetByDoubleValue<String,Double> set = SortedSetByDoubleValue.<String,Double>create(); SortedSetByDoubleValue set=SortedSetByDoub

我有以下代码:

SortedSetByDoubleValue<String,Double> set = SortedSetByDoubleValue.create();
但是,将代码更改为:

SortedSetByDoubleValue<String,Double> set = SortedSetByDoubleValue.<String,Double>create();
SortedSetByDoubleValue set=SortedSetByDoubleValue.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>

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

编辑:尝试以下操作

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

据我所知,Java 5和Java 6之间的类型推断规则没有任何变化。类型推断是编译器之间差异最大的领域。通常情况下,bug出现在
javac
(也就是说,Eclipse编译器通常更接近规范)。我尝试将sun编译器与ant一起使用,但它不起作用。为eclipse项目配置了相同的jdk,Achim同样正确。如果需要使用不同的编译器,IMHO最安全的选择是根本不依赖类型推断。发布足够的代码,以便其他人可以复制它。我想我提供了足够的代码,你还会期望什么?因此,如果我编译这一行代码,我将得到编译器错误消息?@蜥蜴比尔我的答案是唯一正确的答案。“这可能是一个编译器问题”,这算是一个答案?@unreputable-是的,这行代码在使用sun JDK编译时出错
SortedSetByDoubleValue<String,Double> set =
    SortedSetByDoubleValue<String,Double>.create();