[英]How to access method properties at compile-time?
我想访问特定方法的通常反射属性,而不依赖String
。
有什么方法可以从方法标识符获取其反射属性,例如参数类型?
void run() {
java.lang.reflect.Method m = myMethod.getMethod(); // how?
Class<?>[] argClasses = m.getParameterTypes();
}
int myMethod(String arg) {
// ...
}
片段myMethod.getMethod()
无效。 这是我说“从方法标识符获取到java.lang.reflect.Method
对象”的方式。
我不想使用的字符串方式类似于m = getClass().getDeclaredMethod("myMethod", ...)
我将myMethod
用作常规标识符,而不是字符串,即"myMethod"
。 我认为这对于重构很有用,因为有人将myMethod
重命名为hisMethod
-通过String
-name的关系将中断,通过标识符的关系也将被重构。
在Java中,方法不是一等公民,因此Java中没有针对此问题的解决方案。
但是我遇到了类似的问题,为此目的锻造了一个名为picklock的小工具。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.