Java编译器:自动向下转换泛型?

Java编译器:自动向下转换泛型?,java,eclipse,scala,generics,intellij-idea,Java,Eclipse,Scala,Generics,Intellij Idea,我有下面的方法签名 JavaPairRDD<K,Object> countApproxDistinctByKey(double relativeSD) javapairdd countApproxDistinctByKey(双相对) 来自课堂 Class JavaPairRDD<K,V> 类javapairdd Javadoc 在我的代码中,我执行以下操作 JavaPairRDD<String, String> mapToPair = ... so

我有下面的方法签名

JavaPairRDD<K,Object>   countApproxDistinctByKey(double relativeSD)
javapairdd countApproxDistinctByKey(双相对)
来自课堂

Class JavaPairRDD<K,V>
类javapairdd Javadoc

在我的代码中,我执行以下操作

JavaPairRDD<String, String> mapToPair = ... some calculations ...
JavaPairRDD<String, Long> reachedDeviceRDD = mapToPair.countApproxDistinctByKey(0.01);
javapairdd-mapToPair=。。。一些计算。。。
JavaPairRDD reachedDeviceRDD=mapToPair.countApproxDistinctByKey(0.01);
在Eclipse(Mars)中,此分配引发以下错误:

Type mismatch: cannot convert from JavaPairRDD<String,Object> to JavaPairRDD<String,Long>
类型不匹配:无法从JavaPairdd转换为JavaPairdd
以上签名正确无误

但我的问题是,我已经用IntellijIdea编程6个多月了,从现在起,这个错误就再也没有出现过。
它甚至没有提出NetBeans,也没有在Maven(即javac)中编译项目

在我看来,编译器正在“自动”将对象泛型参数转换为Long,这将是疯狂的

我不知道我错过了什么

其他信息: 这些类来自ApacheSpark项目,该项目是用Scala编写的

**编辑**
您可以找到一个代码示例:

“它不会在Maven中编译项目”。既然Maven调用了javac,那就太奇怪了。您能发布一个复制代码吗?是的,但是eclipse使用jdt而不是系统上的javac。我以前遇到过类似这样的细微差别。谢谢你的评论。您可以在这里找到一个例子:这个问题似乎与Tuple2类(Scala)和Tuple2(Java)有关。我真的不明白发生了什么,事实是EclipseJDT正确地抛出了错误,而javac(以及maven、intellij、netbeans)没有。此行为改变了在Tuple2中添加或删除菱形操作符()的情况。如果没有,编译器不会检查类型@当然不会,原始类型不会被检查!如果不使用泛型,“它不会在Maven中编译项目”。既然Maven调用了javac,那就太奇怪了。您能发布一个复制代码吗?是的,但是eclipse使用jdt而不是系统上的javac。我以前遇到过类似这样的细微差别。谢谢你的评论。您可以在这里找到一个例子:这个问题似乎与Tuple2类(Scala)和Tuple2(Java)有关。我真的不明白发生了什么,事实是EclipseJDT正确地抛出了错误,而javac(以及maven、intellij、netbeans)没有。此行为改变了在Tuple2中添加或删除菱形操作符()的情况。如果没有,编译器不会检查类型@当然不会,原始类型不会被检查!如果没有,就不能使用泛型。