我有以下代码。
一级
package com.test;
public class CustomizeHere
{
private CustomizeMe customizeMe = new CustomizeMe();
public void setDescription()
{
customizeMe.setText("How about calling some method before me?");
}
}
二等
package com.test;
public final class CustomizeMe
{
private String text = null;
public String getText()
{
return text;
}
public void setText(String text)
{
this.text = text;
}
}
三等
package com.test;
public class ReflectCustomizer
{
/**
* @param args
*/
public static void main(String[] args)
{
CustomizeHere customizeHere = new CustomizeHere();
// Requirement here is when customizeMe.setText() before method invocation we want to add some additional behaviour at run time like we should come to
// know setText() is invoked.
customizeHere.setDescription();
}
}
我想知道在上述情况下我是否可以知道正在调用该setText()
方法?CustomizeMe
而且我不能从customizeMe更改代码,但是我在运行时使用反射有customizeMe的实例。
我无法更改CustomizeMe
和CustomizeHere
类中的代码。另外,由于java.lang.Reflect.Method
类不允许附加任何侦听器,因此我会知道它正在被调用,所以还有其他方法吗?