做网站卖广告挣几百万,微企免费做网站,excel做网站数据库,汕头电商网站建设前几天遇到一个问题#xff0c;部分业务一直报错java.lang.NoSuchMethodException#xff0c;可是其它业务都是正常的啊#xff0c;为什么呢#xff1f; 经过排查#xff0c;获取类使用的方法是getDeclaredMethod#xff0c;该方法不能获取继承类的方法#xff0c;改成g… 前几天遇到一个问题部分业务一直报错java.lang.NoSuchMethodException可是其它业务都是正常的啊为什么呢 经过排查获取类使用的方法是getDeclaredMethod该方法不能获取继承类的方法改成getMethod后问题解决了。顺便整理一下两者的区别给自己加深下印象。 核心区别对比
特性getMethodgetDeclaredMethod访问权限仅公有方法所有访问权限公有、私有、受保护等是否包含继承方法是否典型应用场景调用公有 API 方法反射调用私有 / 受保护方法需配合setAccessible(true) 简单的说就是getMethod获取的是公有方法包含继承getDeclaredMethod获取的是该类的所有方法包含私有方法但使用私有方法时需要配合setAccessible(true)不然也会出现java.lang.NoSuchMethodException的报错。