мне интересно, какой тип я кладу вместо XXXчто тип вход classOf
def registerClass(cl:XXX) = kryo.register(classOf[cl])
EDIT: Для почему я хочу это сделать.
Мне нужно зарегистрировать много классов, используя приведенный выше код. Я хотел, чтобы удалить дублирование вызова kyro.register несколько раз, в надежде написать код, как показано ниже:
Seq(com.mypackage.class1,com.mypackage.class2,com.mypackage.class3).foreach(registerClass)
Другой вопрос, могу ли я передать строку вместо этого? и каким образом преобразовать его в класс в registerClass?
Seq("com.mypackage.class1","com.mypackage.class2").foreach(registerClass)
EDIT 2: Когда я пишу com.mypackage.class1, это означает, что любой класс, определенный в моем источнике. Так что, если я создать класс
package com.mypackage.model
class Dummy(val ids:Seq[Int],val name:String)
я обеспечил бы com.mypackage.model.Dummy в качестве входных данных Итак,
kryo.register(classOf[com.mypackage.model.Dummy])
Kryo библиотека Java сериализации. Сигнатура класса регистра является
register(Class type)
Можете ли вы показать, что такое 'com.mypackage.class1'? И что такое подпись метода 'register' на' kryo'? –
Если 'class1' является определением класса, я подозреваю, что вам нужно будет использовать решение EECOLOR' Seq (classOf [com.mypackage.class1], ...). Foreach (registerClass) ' –
@ KristianDomagala создал EDIT 2 для уточнить далее. – RAbraham