我正在寻找一种方便的方法,来获取一个方法的Method对象。想法是:
Method fooMethod = getMethod( new MyObject().foo() ) // returns method "foo" in MyObject
显而易见的方法是将方法名作为字符串使用:
Method fooMethod = MyObject.class.getMethod("foo")
但是我希望避免这种情况,因为如果我重命名foo(),那么代码将无法工作,或者我必须在使用该字符串的所有地方进行更改。
我的使用案例是我想使用类似于PropertyChangeListeners的东西,但是它们依赖于方法名称作为字符串。我想安全地使用实际方法而不依赖于字符串。
有什么方法可以以一种“重命名安全”的方式获取该方法吗?
更新:我想找到一个不依赖于IDE特性的纯Java解决方案。