为什么 android/ Java 反射无法获取到私有方法,倒是能获取到 public 的方法

2022-01-04 16:39:19 +08:00
 nnegier

代码:

Method[] declaredMethods = Class.forName("android.widget.NumberPicker").getDeclaredMethods();
for (Method method:declaredMethods) {
	Logger.e(method.toString()); 
}

我查看了 Log ,一个 private 的方法都没有,google 百度无果,自行查询研究无果,特来求教,另外获取私有属性倒是正常的,就是私有方法不行。

问题来源,最开始是想获取单个私有方法,就是这个 validateInputTextView 私有方法,发现报错 NoSuchMethodException ,无论怎么获取测试都是这样,所以就决定把所有方法都打印出来,结果里面一个私有方法都没有。

5326 次点击
所在节点    Android
22 条回复
nnegier
2022-01-05 00:21:00 +08:00
@junas7 android 官方的限制
nnegier
2022-01-05 00:21:21 +08:00
@yiranshaxiao 高手

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/826137

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX