当前位置: 首页 > 面试题库 >

我可以使用Java反射获取方法参数名称吗?

樊腾
2023-03-14
问题内容

如果我有这样的课程:

public class Whatever
{
  public void aMethod(int aParam);
}

有没有办法知道aMethod使用名为aParam类型的参数int


问题答案:

总结一下:

  • 如果编译期间包含调试信息,则可以获取参数名称。查看此答案以获取更多详细信息
  • 否则得到的参数名称是不是有可能
  • 使用可以获取参数类型 method.getParameterTypes()

为了编写编辑器的自动完成功能(如你在评论之一中所述),有几个选项:

  • 使用arg0arg1arg2等。
  • 使用intParam,stringParam,objectTypeParam,等。
  • 结合使用以上内容-前者用于非基本类型,而后者用于基本类型。
  • 根本不显示参数名称-仅显示类型。


 类似资料:
  • 问题内容: 我正在尝试使用Go的反射系统来检索函数的名称,但是在调用其类型的Name方法时会得到一个空字符串。这是预期的行为吗? 这是我如何解决问题的简单示例: 问题答案: 解决方案是使用FuncForPc返回一个。 返回: 如果需要,只需将其标记化即可。

  • 问题内容: 给定以下Go方法: 我想反映参数的名称(在这里)。 我尝试了以下操作,但是它返回了结构名称(在这里): 如何获得参数名称? 问题答案: 无法获取方法或函数的参数名称。 这样做的原因是因为名称对于调用方法或函数的人并不是很重要。重要的是参数的类型及其顺序。 甲功能类型表示集合的具有相同参数和结果类型的所有功能。无论参数名称如何,具有相同参数和结果类型的2个函数的类型均相同。以下代码显示:

  • 我使用的是selenium pagefactory,并引入了一个注释@Name(Description=“Username”),用于所有WebElement。稍后,我需要在自定义方法中找到描述值,以便进行报告,例如: 我的@Name注释界面和pagefactory如下所示: 名称接口 在使用反射时,我面临的问题是需要定义pagefactory的类名,并提供字段名作为字符串“username”,以检

  • 问题内容: 在 Java 6中 ,假设我具有以下方法签名: 我想知道在运行时传递给任何其他参数的值,这里重要的一点是我想通过参数名称获取该值。 我知道如何使用或获取参数类型的列表。 理想情况下,我想获取参数 名称 而不是类型的列表。有办法吗? 问题答案: 如果您告诉编译器将其包括在内,则可以使用参数名称(使用调试信息进行编译)。Spring 可以帮助您获取名称。该默认实现使用ASM 这样做。 与您

  • 问题内容: 我正在编写小型且非常干燥的框架,该框架高度依赖元数据。我想知道是否有一种方法来获取方法参数名称,即给定一些方法 得到的字符串和。 我知道我可以注释参数,但是那不是很好。 问题答案: 我们为包含参数名称的String[]的方法创建了一个自定义注释。与必须注释每个单独的参数相比,此方法感觉易于管理。我们计划添加构建时检查,以确保带注释的参数名称的数量与参数的数量匹配,因为这是我们所需要的。

  • 问题内容: 我有一个很好的功能,可以以给定类型打印有关给定方法的一些信息,这是一个goplay 除了我找不到找到方法参数名称的方法以外,我需要做的所有事情吗? 问题答案: 局部变量的名称(包括函数参数)仅适用于程序员。编译器在生成代码时将其丢弃。无法检索参数名称,因为它们在编译后的代码中不可用。