2015-06-11 3 views
0

Как я могу вызвать следующий метод Scala из Java?Call Scala generic method from Java

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 не дает мне никакой помощи от его автозаполнения.

ответ

2

Ugh. Вы должны? B и C ClassTags добавляются в список неявных параметров (до явных), поэтому вы можете добавить соответствующие объекты, сгенерированные с помощью объекта scala.reflect.ClassTag. Но это будет уродливо.

Что-то вроде (непроверенные):

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