从Java调用Scala泛型方法

时间:2015-06-11 19:17:56

标签: java scala

如何从Java调用以下Scala方法?

def mult[A,B: ClassTag,C: ClassTag](rdd1:RDD[A], rdd2:RDD[B])(implicit multiplier: Multiplier[A,B,C]): RDD[C] =
    rdd1.zip(rdd2).map(p => multiplier.multiply(p._1, p._2))

有可能吗? Eclipse并没有从其自动完成功能中获得任何帮助。

1 个答案:

答案 0 :(得分:2)

唉。你好吗? B和C ClassTag被添加到隐式参数列表中(在显式参数之前),因此您可以添加使用scala.reflect.ClassTag对象生成的适当参数。但它会很难看。

像(未经测试)的东西:

mult(rdd1, rdd2, scala.reflect.ClassTag.apply(B.class), scala.reflect.ClassTag.apply(C.class), myMult);