У меня есть функция Java, как это
public static CollectionReader createCollectionReader(
Class<? extends CollectionReader> readerClass, TypeSystemDescription typeSystem,
Object... configurationData)
Я бы хотел сделать из этого частично применяемую функцию и указать аргумент для Object ... part. Я не уверен, возможно ли это. Я пытался
val partiallyApply = createCollectionReader(_:Class[_ <: CollectionReader], _:TypeSystemDescription,
"IncludeGoldStandardAnnotations", new Boolean("true"),
"EndIndex", new Integer("-1"), _:_*) // Doesn't work
и хотите использовать его как
val reader = partiallyApply(classOf[someReader], someType:TypeSystemDescription,
"other", "configurationData", "beside", "those_four_that_already_applied_too"]
но это не похоже на работу. Кроме того, этот объект ... имеет техническое имя?
РЕДАКТИРОВАТЬ: немного изменить код (моя ошибка. Я забыл ввести в него имя val) и добавить пример использования, который я хочу.
РЕДАКТИРОВАТЬ 2: Я думаю, что мой главный вопрос заключается в том, что можно сделать частично применить функцию на Vararg?
РЕДАКТИРОВАТЬ3: Благодаря предложению elbowich. Я придумаю
def createCollectionReaderReadAll(cls: Class[_ <: CollectionReader], ts: TypeSystemDescription, cfg: AnyRef*) =
createCollectionReader(cls, ts,
Seq("IncludeGoldStandardAnnotations", new Boolean("true"), "EndIndex", new Integer("-1")) ++ cfg: _*)
отлично работает