刚学Java不久,知道私有属性不能直接访问。但是请看如下代码,它是如何做到的?分析越详细越好,看不懂的描述不清楚不给分。import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;public class Employee {
private String name; //注意属性的标志符是私有的,下同
private String age;
private String salary;
public static void main(String[] args) { // get thisClass fields
Field thisFields[] = Employee.class.getDeclaredFields();
// get superClass fields
List thisFieldsList = Arrays.asList(thisFields);
for (Iterator iterator = thisFieldsList.iterator(); iterator.hasNext();) {
Field field = (Field) iterator.next();
System.out.println(field.getName());
}
}
}输出如下:
name
age
salary
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;public class Employee {
private String name; //注意属性的标志符是私有的,下同
private String age;
private String salary;
public static void main(String[] args) { // get thisClass fields
Field thisFields[] = Employee.class.getDeclaredFields();
// get superClass fields
List thisFieldsList = Arrays.asList(thisFields);
for (Iterator iterator = thisFieldsList.iterator(); iterator.hasNext();) {
Field field = (Field) iterator.next();
System.out.println(field.getName());
}
}
}输出如下:
name
age
salary
Field thisFields[] = Employee.class.getDeclaredFields();
得到Employee类的变量(它有三个)
知道这个了后面自然理解了吧