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 vermisstContainerValue
und 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?