![]() |
1
2
正如其他人指出的那样,没有标准的方法可以做到这一点,所以您必须实现自己的过载解析算法。
尽可能接近地遵循javac的过载解决规则可能是有意义的:
需要注意的一些陷阱:
|
![]() |
2
2
我建议你用
最重要的是:
你接下来需要做的是 使用结果 在这个数组中 决定 哪一个(如果有的话)是最匹配的。因为最接近的匹配应该在很大程度上取决于您的需求和特定的应用程序,所以您自己编写代码是有意义的。 演示如何执行此操作的一种方法的示例代码:
在这个例子中,
这是一个基本的实现——它返回第一个适合该法案的方法。您需要对其进行扩展,以创建匹配的所有方法的列表,然后根据某种条件对它们进行排序,并返回最佳匹配方法。
然后,您可以通过创建更通用的
高温高压
编辑:正如@finnw指出的,使用时要小心
|
![]() |
3
1
阿法克,做这种事没有简单的方法。当然,标准Java类库中没有任何东西可以做到这一点。 问题是没有一个“正确”的答案。您需要考虑所有的用例,决定“正确的方法”应该是什么,并相应地实现反射代码。 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
![]() |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |
![]() |
jkone27 · F#-在编译时从字符串生成简单的空类型 6 年前 |
![]() |
John Bustos · C#通用工厂模式,不说明通用工厂模式的类型 6 年前 |
![]() |
Randall Flagg · 访问propertyinfo中的属性 6 年前 |
![]() |
Kacper · 在反映的全名和成员c后的“*”中,“+”是什么意思# 6 年前 |
![]() |
tobeypeters · 反射铸造 6 年前 |
![]() |
myst02 · 如何在另一个方法之后调用该方法? 6 年前 |