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

时间:2015-09-25 12:17:00

标签: java eclipse scala generics intellij-idea

我有以下方法签名

JavaPairRDD<K,Object>   countApproxDistinctByKey(double relativeSD)

来自班级

Class JavaPairRDD<K,V>

Javadoc here

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

JavaPairRDD<String, String> mapToPair = ... some calculations ...
JavaPairRDD<String, Long> reachedDeviceRDD = mapToPair.countApproxDistinctByKey(0.01);

在Eclipse(Mars)中,此分配会引发以下错误:

Type mismatch: cannot convert from JavaPairRDD<String,Object> to JavaPairRDD<String,Long>

这是正确的,鉴于上述签名!

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

在我看来,编译器是&#34;自动投射&#34;对象泛型参数为Long,这将是疯狂。

我不知道自己错过了什么。

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

**编辑** 您可以找到代码示例here

0 个答案:

没有答案