首页 > 解决方案 > 可以在参数是函数结果的方法中获取参数名称

问题描述

当您将其他函数作为参数传递给函数时,有一种方法可以获取参数函数名称吗?

我尝试了反射,但看起来信息没有出现。

public static String LeftFunction(String left) {
  ... Do stuff
  return left;
}

public static String RightFunction(String right) {
  ... Do stuff
  return right;
}

现在,如果我使用像这样的主要功能

findRoute(LeftFunction("street 1"), LeftFunction("street 2"), RightFunction("Street 3"));

有没有一种方法findRoute可以让函数知道参数 1、2、3 .. 是否从函数 left、right、up ... 调用

标签: javareflection

解决方案


不,没有办法在运行时获取函数参数名称的名称。反射 API 不公开名称。

确实,如果我正确阅读了您的代码,则您根本没有传递函数:

findRoute(LeftFunction("street 1"), 
          LeftFunction("street 2"), 
          RightFunction("Street 3"));

这是评估函数并将结果传递给findRoute方法。换句话说,findRoute甚至不知道调用了哪些函数,更不用说有关其参数名称的任何信息了。

现在可以编写一些复杂的代码来包装函数及其名称,然后用一个特定的参数“咖喱”它们,就像你似乎正在尝试做的那样。但是可能有更好的方法......做任何你实际上想要做的事情。


推荐阅读