次のコードがあります。
ファーストクラス
package com.test;
public class CustomizeHere
{
private CustomizeMe customizeMe = new CustomizeMe();
public void setDescription()
{
customizeMe.setText("How about calling some method before me?");
}
}
2等
package com.test;
public final class CustomizeMe
{
private String text = null;
public String getText()
{
return text;
}
public void setText(String text)
{
this.text = text;
}
}
3級
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()
メソッド onCustomizeMe
が呼び出されていることを知ることができますか? そして、customizeMe からコードを変更することはできませんが、実行時にリフレクションを使用して、customizeMe のインスタンスがあります。
クラス内のコードを変更できませんCustomizeMe
。CustomizeHere
また、java.lang.Reflect.Method
クラスはリスナーをアタッチすることを許可していないので、それが呼び出されていることを知るようになるので、別の方法はありますか?