java - 可以在参数是函数结果的方法中获取参数名称
问题描述
当您将其他函数作为参数传递给函数时,有一种方法可以获取参数函数名称吗?
我尝试了反射,但看起来信息没有出现。
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 ... 调用
解决方案
不,没有办法在运行时获取函数参数名称的名称。反射 API 不公开名称。
确实,如果我正确阅读了您的代码,则您根本没有传递函数:
findRoute(LeftFunction("street 1"),
LeftFunction("street 2"),
RightFunction("Street 3"));
这是评估函数并将结果传递给findRoute
方法。换句话说,findRoute
甚至不知道调用了哪些函数,更不用说有关其参数名称的任何信息了。
现在可以编写一些复杂的代码来包装函数及其名称,然后用一个特定的参数“咖喱”它们,就像你似乎正在尝试做的那样。但是可能有更好的方法......做任何你实际上想要做的事情。
推荐阅读
- java - What does int type signifies in setProperty(String name, String value, int type) method?
- flutter - StreamZip 仅显示一阶流
- r - R - 递归查找子列表的数量
- php - 花费大量时间从 oracle 获取数据并显示在 php
- java - ID 未引用此 Activity 中的视图
- gdb - gdb“对数字的无效二进制操作”
- android - 如何使用xml在底部导航视图上方设置片段?
- node.js - 节点 sequelize 自动生成的列(created_at、updated_at 没有下划线)
- angular - 如何以编程方式控制 Angular Material Sidenav
- sql - 用于更新 Excel 数据透视表的 VBS 脚本