Finden Sie Java-Klassenabhängigkeiten zur Laufzeit

Was ist der effektivste Weg, um eine Liste der Abhängigkeiten für eine Java-Klasse zur Laufzeit abzurufen?

Verwendendiese (basierend auf ASM ByteCode Manipulator 3.3.1) kann ich Folgendes tun:

final Collection<Class<?>> classes = 
  getClassesUsedBy(MyService.class.getName(), "com");

Dies gibt Verweise auf zurückBasicService undIService, aber vermisstContainerValueund das ist das Problem. Ich habe mit dem ASM-Code herumgespielt, konnte aber nicht herausfinden, wie ich ContainerValue abholen soll.

package com.foo.bar;

    public class MyService extends BasicService implements IService {
         public String invoke(){
            return new ContainerValue("bar").toString();
    }

Als Randnotiz, wenn ich das macheContainerValue der Rückgabetyp aufinvoke, Es klappt.

Gibt es eine Alternative zur Verwendung von ASM, um eine Liste der Abhängigkeiten für eine Klasse abzurufen? Warum zum Teufel ist das so schwierig?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage