2017-02-22 5 views

答えて

3

JVM上のKotlinは、クラスローダーの実装のためにこの点でJavaと同じ問題を抱えています。

クラスローダーは、クラスに提供されるクラスをVMに伝える必要はなく、クラスを返すか、例外をスローする必要があります。

ソースとより多くの情報:Can you find all classes in a package using reflection?

リンクされたスレッドを要約すると、あなたは現在のクラスパスを検査できるようにするソリューションが多数あります。

  • Reflectionsライブラリはかなりまっすぐ進むと、クラスのすべてのサブタイプを取得するなどの追加機能をたくさん持っている、は、すべてのタイプ/メンバーは、必要に応じて、注釈パラメータはなど、
  • に一致して、いくつかのアノテーションを付けます
  • GuavaClassPathです。これはClassInfoを返します。あなたのユースケースでは十分ではありませんが、Guavaはほぼすべての場所で利用可能です。
  • クラスローダーのリソースとコードソースを照会することで、自分で記述してください。ライブラリの依存関係を絶対に追加できない限り、このルートを提案しません。
関連する問題