Encuentra dependencias de clase java en tiempo de ejecución

¿Cuál es la forma más efectiva de obtener una lista de dependencias para una clase de Java en tiempo de ejecución?

Utilizandoesta (basado en ASM ByteCode Manipulator 3.3.1), puedo hacer lo siguiente:

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

Esto devuelve referencias aBasicService yIService, pero fallaContainerValue, y ese es el problema. Jugué un poco con el código ASM pero no pude averiguar cómo seleccionar ContainerValue.

package com.foo.bar;

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

Como nota al margen, si hagoContainerValue el tipo de retorno eninvoke, funciona.

¿Hay alguna alternativa al uso de ASM para obtener una lista de dependencias para una clase? ¿Por qué diablos es tan difícil?

Respuestas a la pregunta(2)

Su respuesta a la pregunta