如何在编译时访问方法属性?

时间:2015-04-07 08:58:55

标签: java reflection refactoring

我想在不依赖String的情况下访问特定方法的常用反射属性。

有没有办法从方法 - 标识符到其反射属性,比如参数类型?

void run() {
    java.lang.reflect.Method m = myMethod.getMethod(); // how? 
    Class<?>[] argClasses = m.getParameterTypes();
}

int myMethod(String arg) {
   // ...
}

作品myMethod.getMethod()无效。这是我的说法&#34;从方法标识符到java.lang.reflect.Method对象&#34;。

我不想使用的字符串方式与m = getClass().getDeclaredMethod("myMethod", ...)

类似

我像常规标识符一样使用myMethod而不是字符串,即"myMethod"。我认为这对于重构是有益的,有人将myMethod重命名为hisMethod - 通过String - 名称的关系会中断,其中通过标识符的关系也将被重构

1 个答案:

答案 0 :(得分:0)

在java方法中,不是一等公民,所以Java中没有解决这个问题的方法。

然而,我遇到了类似的问题,并为此目的伪造了一个名为picklock的小工具。