私はアンドロイド開発のためにscala-reflectパッケージを使用しようとしています。 私はbuild.sbtでScalaの-反映依存関係を追加しました:sbt-android:andaroidのscala-reflectを使用できません:java.rmi.Remoteが見つかりません
libraryDependencies += "org.scala-lang" % "scala-reflect" % "2.11.8"
が、私は例外を取得:私はjava.rmi.Remote
とjava.rmi.RemoteException
のJavaソースを追加しようとしました
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/rmi/Remote;
at scala.reflect.internal.Definitions$DefinitionsClass.RemoteInterfaceClass$lzycompute(Definitions.scala:370)
at scala.reflect.internal.Definitions$DefinitionsClass.RemoteInterfaceClass(Definitions.scala:370)
at scala.reflect.runtime.JavaUniverseForce$class.force(JavaUniverseForce.scala:255)
at scala.reflect.runtime.JavaUniverse.force(JavaUniverse.scala:16)
at scala.reflect.runtime.JavaUniverse.init(JavaUniverse.scala:147)
at scala.reflect.runtime.JavaUniverse.<init>(JavaUniverse.scala:78)
at scala.reflect.runtime.package$.universe$lzycompute(package.scala:17)
at scala.reflect.runtime.package$.universe(package.scala:17)
をして構築されましたandroid:package --core-library
のプロジェクト(sbtがdexCoreLibraryオプションを見つけられなかったため)、正常にビルドされましたが、ランタイムエラーが発生しました。
それで、そうでなければjava.rmiの依存関係を追加できますか?scala.reflectはそれを使用できますか?
私は、メソッドのOption.orDefaultの実装のコンテキストでscala.reflectライブラリを使用しています:
class RichOption[+A : TypeTag](val delegate: Option[A]) {
def orDefault : A = delegate.getOrElse {
delegate match {
case t if typeOf[A] <:< typeOf[Int] => 0.asInstanceOf
case _ => throw new IllegalAccessException("there is no default value for this type.")
}
}
}
あなたはおそらくscala.reflectなしOption.orDefault (のためのより良い実装を知っている場合)、 私にお知らせください。