1

XXXの代わりに何の型を入れようか迷っています

def registerClass(cl:XXX) = kryo.register(classOf[cl])

編集:なぜ私はこれをしたいのですか。

上記のコードを使用して多くのクラスを登録する必要があります。以下のようなコードを書きたいと思って、kyro.register を数回呼び出す重複を削除したかったのです。

 Seq(com.mypackage.class1,com.mypackage.class2,com.mypackage.class3).foreach(registerClass)

別の質問ですが、代わりに String を渡すことはできますか? どういうわけかregisterClassのクラスに変換しますか?

Seq("com.mypackage.class1","com.mypackage.class2").foreach(registerClass)

編集 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 クラスのシグネチャは

register(Class type)
4

2 に答える 2

1

への型パラメーターはclassOf、コンパイル時に認識されている必要があります。あなたがやろうとしていることについてもっと知らなくても、使用できない理由はありますか:

def registerClass(cl:XXX) = kryo.register(cl.getClass)
于 2013-04-14T23:08:19.260 に答える