是否可以编写方法或方法来打印任何方法的参数? 我的意思是假设我有两种方法,比如
calculate(int a,int b) {}
notifyResult(int type){}
所以我想要一个在计算方法调用时打印"a"
和"b"
的方法
调用notifyResult print "type".
我知道使用反射或AOP技术可以帮助我吗? 还有其他办法吗?
答案 0 :(得分:3)
从Java 8开始,您可以obtain the name of method argument。
为此,您必须使用选项-parameters
编译代码。
然后形成[Executable]类(Method或Constructor)的实例,您可以使用方法getParameters()
来获取Parameter个实例的数组。 getName()方法将解析名称。
private void example(Class<?> type) {
for(Method method : type.getMethods()){
for(Parameter parameter : getParameters()) {
System.out.println("%s",parameger.getName());
}
}
}
答案 1 :(得分:1)
没有直接的方法可以做到这一点。我的意思是,没有可以检索参数的java API。
但是,您可以使用以下方法。
答案 2 :(得分:0)
您可以在 Java 8 :
中执行此操作Class<String> someClass = String.class;
for (Method someMethod : someClass.getDeclaredMethods()) {
for (Parameter p : someMethod.getParameters()) {
System.err.println(" " + p.getName());
}
}
并且看到here