有没有什么办法可以在Map
中检索该方法中方法的所有参数/参数,并将键作为参数名称和值作为参数值?
说,我有一个带有以下签名的方法:
public void do(String arg1, int arg2, String arg3, Double arg4, MyCustomObj arg5)
我想实现这样的目标:
public void do(String arg1, int arg2, String arg3, Double arg4, MyCustomObj arg5) {
Map<String, Object> argsMap = <what-goes-here>;
logger.info("do ENTRY: "+argsMap);
}
PS:我不是在寻找基于AOP的解决方案。我想要一些可以在方法本身中使用的东西。
更新:这个问题不是关于如何通过Reflection获取值。请在将其标记为重复之前重新阅读。
答案 0 :(得分:0)
这似乎是AOP和with spring的候选人,您可以在建议之前申请,创建自己的地图并打印它。
答案 1 :(得分:0)
您可以使用Varargs:
public void function(String... parameters) {
for (int i = 0; i < parameters.length; i += 2) {
System.out.println(parameters[i] + " " + parameters[i + 1]);
}
}