Java中方法参数的映射

时间:2015-07-13 10:13:40

标签: java

有没有什么办法可以在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获取值。请在将其标记为重复之前重新阅读。

2 个答案:

答案 0 :(得分:0)

这似乎是AOPwith 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]);
    }
}