此帖为Java发射补漏之用:
前些日子,有个需求需要增加某个系统的一个客户端,且需要使得系统能够区分开来自不同客户端的调用请求;
在最初的设计中,是通过增加参数的子类型供新增客户端调用参数。保证了原有接口的稳定和满足新的调用需求。然而,新客户端程序采用SpringBoot开发且采用嵌入式Jetty,因此调用HSF只能通过Http方式;调用过程中,发现传递子类型,报找不到方法的错误。
排查错误过程中,发现Java反射getDeclaredMethod方法类型参数只能与要调用的方法参数类型完全一致,而不能是子类型。