Android反射方法错误

Chu*_*ham 6 java reflection android

我试图用这个Android类找出Reflection:

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());
Run Code Online (Sandbox Code Playgroud)

该方法getKeyguardStoredPasswordQuality声明为(无参数):

public int getKeyguardStoredPasswordQuality() {
    // codes here
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Exception: java.lang.IllegalArgumentException: expected receiver of type com.android.internal.widget.LockPatternUtils, but got java.lang.Class<com.android.internal.widget.LockPatternUtils>
Run Code Online (Sandbox Code Playgroud)

我如何申报com.android.internal.widget.LockPatternUtils接收者?

Kep*_*pil 13

您正在传递classto #invoke()而不是实例LockPatternUtils.

您可以使用创建实例#newInstance().