代码:
package com.example;
import java.lang.reflect.Field;
public class Main {
public static void main(String[] args) throws Exception {
Object person = new Person("Monin");
Class cls = person.getClass(); //获取class信息
Field field = cls.getDeclaredField("name"); //反射获取字段
Object value = field.get(person); //获取字段的值
System.out.println(value);
}
}
class Person {
private String name;
public Person(String name) {
this.name = name;
}
}
异常:
java.lang.IllegalAccessException: Class java.lang.Class<com.example.Main> cannot access private field java.lang.String com.example.Person.name of class java.lang.Class<com.example.Person>
at java.lang.reflect.Field.get(Native Method)
at com.example.Main.main(Main.java:13)
at java.lang.reflect.Method.invoke(Native Method)
at com.duy.android.compiler.java.Java.run(Unknown Source:335)
at com.duy.ide.javaide.run.activities.ExecuteActivity.executeDex(Unknown Source:42)
at com.duy.ide.javaide.run.activities.ExecuteActivity.exec(Unknown Source:19)
at com.duy.ide.javaide.run.activities.ExecuteActivity.access$100(Unknown Source:0)
at com.duy.ide.javaide.run.activities.ExecuteActivity$1.run(Unknown Source:8)
at java.lang.Thread.run(Thread.java:929)
我在手机Java N-IDE上跑的,有什么问题?