【发布时间】:2026-01-01 08:50:01
【问题描述】:
我正在尝试通过创建扩展 AppCompatButton 的类来创建自定义按钮方法。我有定位按钮方法工作的过程
method = actClass.getMethod(methodName, View.class);其中 actClass 是调用按钮的活动的类。当我到达调用该方法的代码时,我得到一个异常:
Error = "expected receiver of type com.kana_tutor.button_demo.MainActivity,
but got java.lang.Class<com.kana_tutor.button_demo.MainActivity>"
我尝试过使用类和意图,但都不起作用。我尝试只从 MainActivity(方法所在的位置)导出上下文,这很有效,但这似乎是个坏主意。
什么是接收器?
Method.java 将其描述为“@param 接收者调用此方法的对象”。这只是对我正在调用的方法的引用吗
我有该方法所在的类及其名称。如何创建“接收方”?
我以前真的不需要使用反射或调用。
谢谢!
【问题讨论】:
-
a) 发布您的代码。 b) 你不能在不指定实例的情况下调用实例方法。那是接收器。
-
我认为您还应该更清楚地说明您正在尝试做的事情 - 您做正确事情的几率似乎微乎其微。无需使用反射来扩展按钮。
标签: java android reflection