[关闭]
@ghimi 2018-08-09T06:32:52.000000Z 字数 1392 阅读 716

Java通过对象产生的类获取对象所拥有变量的值

未分类


  1. public class Test01 {
  2. private static String value1 = "private static value1";
  3. public static String value2 = "public static value2";
  4. private String value3 = "private value3";
  5. public String value4 = "public value4";
  6. public String value5 = "public value5";
  7. public static void main(String[] args) {
  8. Test01 test01 = new Test01();
  9. Field[] declaredFields = test01.getClass().getDeclaredFields();
  10. for (Field field : declaredFields) {
  11. try {
  12. // 显示所有被声明的变量(包括私有变量和类变量)的值,如果为非法访问则报异常
  13. System.out.println("declaredFields : " + "\tname : "+field.getName() + "\tmodifiers : "+ Modifier.toString(field.getModifiers())+ "\tvalue : "+field.get(test01));
  14. } catch (IllegalArgumentException | IllegalAccessException e) {
  15. e.printStackTrace();
  16. }
  17. }
  18. Field[] fields = test01.getClass().getFields();
  19. for (Field field : fields) {
  20. try {
  21. //显示所有类中可以被正常访问的 (accessible public fields of the class) public 字段,如果为非法访问则报异常
  22. System.out.println("Fields : " + "\tname : "+field.getName() + "\tmodifiers : "+Modifier.toString(field.getModifiers()) + "\tvalue : "+field.get(test01));
  23. } catch (IllegalArgumentException | IllegalAccessException e) {
  24. e.printStackTrace();
  25. }
  26. }
  27. }
  28. //循环检查私有成员变量是否为空,只要有一个私有成员变量为空则返回false
  29. public boolean checkRequired() {
  30. Field[] declaredFields = this.getClass().getDeclaredFields();
  31. for (Field field : declaredFields) {
  32. if(Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())){
  33. try {
  34. if(field.get(this) == null)return false;
  35. } catch (IllegalArgumentException | IllegalAccessException e) {
  36. return false;
  37. }
  38. }
  39. }
  40. return true;
  41. }
  42. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注