java匹配类数组
我正在编写一个例程来调用通过名称和参数类值数组找到的方法
通过getName匹配方法是可行的,但是当尝试为参数和方法匹配给定的类[]时。getParameterTypes(),我遇到问题
我认为这是可行的:
^{pr1}$但显然不是-m.invoke永远不会到达。我已经检查过了,methodParams提供了与searchParams相同的类
下面的代码是有效的,并选择了正确的方法,但这似乎是一种非常肮脏的方式,我确信我遗漏了一些明显的东西
^{pr2}$你可以在下面搜索框中键入要查询的问题!
我正在编写一个例程来调用通过名称和参数类值数组找到的方法
通过getName匹配方法是可行的,但是当尝试为参数和方法匹配给定的类[]时。getParameterTypes(),我遇到问题
我认为这是可行的:
^{pr1}$但显然不是-m.invoke永远不会到达。我已经检查过了,methodParams提供了与searchParams相同的类
下面的代码是有效的,并选择了正确的方法,但这似乎是一种非常肮脏的方式,我确信我遗漏了一些明显的东西
^{pr2}$
# 1 楼答案
数组是对象,而不是基本体。在对象上使用
==
仅当它们都指向相同的引用时才进行比较,而实际上您希望单独比较每个单独的数组项你想用^{} 来做这个
# 2 楼答案
第一种方法并不是比较数组元素,而是比较数组引用,这是不一样的。如果你认为第二段代码很难看,你可能想看看Arrays.equals(Object[] a, Object[] a2),它实际上会以成对的方式比较两个数组(这正是你在第二种情况下所做的)