我想弄清楚的反思与该Android类:Android的反射法错误
Class<?> c = Class.forName("com.android.internal.widget.LockPatternUtils");
Method method = c.getDeclaredMethod("getKeyguardStoredPasswordQuality");
method.setAccessible(true);
Object object = method.invoke(c); // Error with this line
result = object.toString());
方法getKeyguardStoredPasswordQuality
被声明为(无参数):
public int getKeyguardStoredPasswordQuality() {
// codes here
}
我得到的错误是:
Exception: java.lang.IllegalArgumentException: expected receiver of type com.android.internal.widget.LockPatternUtils, but got java.lang.Class<com.android.internal.widget.LockPatternUtils>
如何申报com.android.internal.widget.LockPatternUtils
作为接收器?
你能对你的解答为这样'对象clazz中= c.newInstance()扩展;'然后传递'Object对象= method.invoke(clazz所)clazz中;'只会工作,如果被引用类的构造函数是空的。在类的构造函数被定义为'public LockPatternUtils(Context context){..}'的情况下,你做了什么? – ChuongPham
我会通过向'newInstance'方法展示doco来标记你的答案是正确的。谢了哥们。 – ChuongPham
@ChuongPham:当然,有一些限制,但它们记录在API链接到的API中。 – Keppil