java反射获取方法体toString
时间: 2024-01-14 10:04:25 浏览: 37
如果你想要获取Java方法体的字符串表示,可以使用Java反射机制中的Method类的getDeclaringClass()和getName()方法来获取方法的类名和方法名,然后使用Java反射机制中的java.lang.reflect.Modifier类的toString()方法获取方法的访问修饰符的字符串表示,最后再使用Java反射机制中的Method类的getGenericReturnType()和getParameterTypes()方法获取方法的返回类型和参数类型。
具体代码如下:
```
Method method = MyClass.class.getMethod("methodName", parameterTypes);
String className = method.getDeclaringClass().getName();
String methodName = method.getName();
String modifiers = Modifier.toString(method.getModifiers());
String returnType = method.getGenericReturnType().toString();
Class<?>[] parameterTypes = method.getParameterTypes();
String parameterTypesString = Arrays.toString(parameterTypes);
String methodBody = className + "." + methodName + "(" + parameterTypesString + ")" +
" " + modifiers + " " + returnType + " {\n" + method.toString() + "\n}";
```
其中,className是方法的类名,methodName是方法的方法名,modifiers是方法的访问修饰符的字符串表示(例如:"public static"),returnType是方法的返回类型的字符串表示,parameterTypes是方法的参数类型的Class对象数组,parameterTypesString是方法的参数类型的字符串表示,methodBody是方法的字符串表示,包括类名、方法名、参数类型、访问修饰符、返回类型和方法体。
注意:这种方式获取的方法体字符串表示可能不是完整的,因为Method类的toString()方法返回的字符串可能不包括完整的方法体。如果你需要获取完整的方法体字符串表示,可以使用Java编译器API或第三方库来实现。