gpt4 book ai didi

java - 通过反射区分方法是否有任意数量的参数

转载 作者:搜寻专家 更新时间:2023-11-01 02:56:42 26 4
gpt4 key购买 nike

在使用反射调用时,有什么方法可以区分这两个方法吗?

public void method(Object[] args) {}

public void method(Object... args) {}

最佳答案

您可以通过 Parameter#isVarArgs() 测试 Parameter 是否为可变参数.

Returns true if this parameter represents a variable argument list; returns false otherwise.


Executable接口(interface)有一个similar method , ConstructorMethod 都实现了。

Returns true if this executable was declared to take a variable number of arguments; returns false otherwise.


但是,如果我正确地理解了您问这个问题的原因,那么知道这些信息对您没有帮助。参数是否为可变参数不会影响您调用 Method#invoke 的方式。正如 GhostCat 所提到的和 Ferrybig 所暗示的那样,您需要以任何一种方式传递一个数组(作为单个参数)。参见 this question举一些例子。

关于java - 通过反射区分方法是否有任意数量的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56945848/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com