简体   繁体   English

从Java调用Scala通用方法

[英]Call Scala generic method from Java

How can I call the following Scala method from Java? 如何从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))

Is it possible? 可能吗? Eclipse isn't giving me any help from its autocomplete. Eclipse的自动完成功能并没有给我任何帮助。

Ugh. 啊。 Must you? 一定要吗 The B and C ClassTags are added to the list of implicit parameters (before the explicit ones), so you can add appropriate ones generated with the scala.reflect.ClassTag object. B和C ClassTag添加到隐式参数列表中(在显式参数之前),因此您可以添加使用scala.reflect.ClassTag对象生成的适当scala.reflect.ClassTag But it's going to be ugly. 但这将是丑陋的。

Something like (untested): 像(未经测试的):

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM