Java利用反射获取类的属性和值
1、通过实体类的getclass().getDeclaredFields()获取类的所有属性
import com.sans.core.entity.SysUserEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.lang.reflect.Field;
@Data
@AllArgsConstructor
@NoArgsConstructor
class User{
private Integer id;
private String username;
private String password;
}
public class TestFanshe {
public static void main(String[] args) throws IllegalAccessException {
User user = new User(1,"小曹","123");
Field[] field = getField(user);
for (int i = 0; i < field.length; i++) {
//打开私有访问
field[i].setAccessible(true);
System.out.println(field[i].getName());
System.out.println(field[i].get(user));
}
}
public static Field[] getField(Object object) {
//获得类
Class<? extends Object> clazz = object.getClass();
// 获取实体类的所有属性信息,返回Field数组
Field[] fields = clazz.getDeclaredFields();
return fields;
}
}
2、返回结果如下: