【问题标题】:Map of method arguments in Java [duplicate]Java中的方法参数映射[重复]
【发布时间】:2015-07-13 10:13:39
【问题描述】:

有什么方法可以在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 的解决方案。我想要一些可以在方法本身中使用的东西。

更新:这个问题不是关于如何通过反射获取值。请在将其标记为重复之前重新阅读。

【问题讨论】:

标签: java


【解决方案1】:

这似乎是AOPwith spring 的候选者,您可以在建议之前申请,创建自己的地图并打印。

【讨论】:

  • 您仍然需要手动创建地图。
  • 是的,但它会在建议范围内,您只需定义一次,如:@Before(..) ..mymethod(..) { create map of args and send it to console and then proceed with normal routine?
  • 我可能错了,但我认为问题是关于如何“神奇地”以地图形式获取方法的参数。
  • 那就更糟了!谢谢@biziclop
【解决方案2】:

你可以使用Varargs:

public void function(String... parameters) {
    for (int i = 0; i < parameters.length; i += 2) {
        System.out.println(parameters[i] + " " + parameters[i + 1]);
    }
}

【讨论】:

    猜你喜欢
    • 2015-07-01
    • 1970-01-01
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 2012-11-26
    • 2012-08-28
    相关资源
    最近更新 更多