Java - 获取所有已执行的方法

时间:2014-05-05 09:26:28

标签: java methods

有没有办法获得具有特定输入的程序的所有已执行方法的列表? 例如:

public static void main(String[] args) 
{
   Car c1 = new Car("c1");
   c1.drive();

   if(args.length > 2)
   {
       Car c2 = new Car("c2");
       c2.drive();
   }
}

public class Car()
{
   String name;

   public Car(String name)
   {
      this.name = name;
   }

   public void drive();
   {
      System.out.println(name + " is driving!");
   }
}

现在我想用输入“1 2 3”获得执行的方法(将创建c1和c2)。 所以列表看起来像这样:

void main(String[] args);
public Car(String name); 
void drive(); 
void println(String input); 
public Car(String name);
 void drive(); 
void println(String input);

由于println中的“+”或其他内容,可能会列出更多方法。有谁知道如何自动创建这样的列表?

如果这对某人来说太容易了,那么过滤所列出的方法也是很好的,这样只会列出由程序员创建的方法,而不是使用但未创建的方法,如println (我希望你知道我的意思)。该列表将如下所示:

void main(String[] args);
public Car(String name); 
void drive(); 
public Car(String name); 
void drive();

2 个答案:

答案 0 :(得分:0)

Reflection API可以帮助您。这是你在看什么?

以下是Java Reflect API的链接:

http://docs.oracle.com/javase/tutorial/reflect/

答案 1 :(得分:0)

您可以在代码上配置Aspects以进行跟踪。但我没有看到任何方法可以计算其他库中的方法,直到你编译那些应用了方面的库。