java.lang.Class的getDeclaredFields方法可以返回一个类、或者接口声明的所有属性,包含public、protected、default (package)、private 的字段,但是不包含继承的字段。
获取到了属性的对象以后,就可以操作属性了,例如获取属性的信息。
代码示例:
下面的类Product 中定义了四个属性:
package com.thb;
public class Product {
private String name;
protected int weight;
String shape;
public int price;
}
定义主类,进行调用,获取属性的信息:
package com.thb;
import java.lang.reflect.Field;
public class Demo4 {
public static void main(String[] args) {
Field[] fields = Product.class.getDeclaredFields();
for ( Field field : fields) {
System.out.println("field name: " + field.getName());
System.out.println("filed type: " + field.getType());
System.out.println("*".repeat(60));
}
}
}
运行输出:
field name: name
filed type: class java.lang.String
************************************************************
field name: weight
filed type: int
************************************************************
field name: shape
filed type: class java.lang.String
************************************************************
field name: price
filed type: int
************************************************************