5

パッケージからすべてのクラスを一覧表示し、新しいリフレクション API (2.10) を介していくつかのメタデータ情報を抽出しようとしています。

私は間違っているかもしれませんが、scala API のパッケージからクラスを一覧表示することはサポートされていないようです。

私はJavaライブラリを使用していますが、それはClass<?>

Class[_]aをuniverse.Typeまたはuniverse.Symbol?に変換することは可能です。

4

1 に答える 1

11

scala.reflect.runtime.universeJavaUniverse)のミラーを使用する必要があります

ランタイム クラスがあるとします。

val cls: Class[_] = someObject.getClass

runtimeMmirrorクラスローダーの( JavaMirror ) を取得し、そのclassSymbolメソッドを呼び出す必要があります。これにより、ランタイム クラスがこのユニバースの ClassSymbol に変換されます。

import scala.reflect.runtime._

val typ: universe.ClassSymbol = universe.runtimeMirror(cls.getClassLoader).classSymbol(cls)
于 2013-02-21T18:23:46.747 に答える