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

获取方法参数的名称

邓宜年
2023-03-14
问题内容

Java 6中 ,假设我具有以下方法签名:

public void makeSandwich(Bread slice1, Bread slice2, List<Filling> fillings, boolean mustard)

我想知道在运行时传递给slice2任何其他参数的值,这里重要的一点是我想通过参数名称获取该值。

我知道如何使用getParameterTypes或获取参数类型的列表getGenericParameterTypes

理想情况下,我想获取参数 名称 而不是类型的列表。有办法吗?


问题答案:

如果您告诉编译器将其包括在内,则可以使用参数名称(使用调试信息进行编译)。Spring
ParameterNameDiscoverer可以帮助您获取名称。该默认实现使用ASM
ClassReader这样做。

javac您一起应包含-g要包含调试信息的参数。我认为使用Eclipse是默认的。可以使用以下参数进行配置:Java->编译器,然后启用“存储有关方法参数的信息(可通过反射使用)”。

一些框架使用此。例如,spring-mvc具有@RequestParam可解析的默认名称。它还支持显式命名-
@RequestParam("foo")如果不提供调试信息。



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

  • 问题内容: 鉴于函数: 如何提取参数的数量和名称。即,鉴于我有提及func,因此我希望返回。 为此的使用场景是,我有一个装饰器,并且希望以与实际函数作为键一样的顺序使用方法参数。即,我打电话时装饰器的外观如何? 问题答案: 看一下模块-这将为你检查各种代码对象属性。 其他结果是 args和* kwargs变量的名称,以及提供的默认值。即。 请注意,在某些Python实现中,某些可调用对象可能不是自

  • 是否可以根据SpringAOP中的参数名称获取方法参数值。 这种方法将获得参数名,而不是值。 将返回值而不是名称 那么是否可以根据参数名获取值?

  • 我使用的是Spring4.3。是否可能获得传递给它的方法参数名和值?我相信这可以做到使用AOP(之前的建议),如果可能的话,你可以给我一个源代码。

  • 在我的项目中使用JavaSelenium和Page Object,想要创建一个自定义方法,将两个字符串作为参数,组合它们并调用右webelement来执行一些操作。 下面的例子我的页面对象 } 例如,调用该方法: 调用此方法应执行click on question1Yes元素。

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