概述
import java.lang.reflect.Field;
1.
2. /**
3. *
4. * @author EX-QINCIDONG001
5. *
6. */
7. public class ReflectClass {
8.
9. /**
10. * @param args
11. */
12. public static void main(String[] args) {
13. Person p = new Person();
14. p.setId(0);
15. p.setName("张三");
16. reflect(p);
17. }
18.
19. public static void reflect(Object obj) {
20. if (obj == null) return;
21. Field[] fields = obj.getClass().getDeclaredFields();
22. for (int j = 0; j < fields.length; j++) {
23. fields[j].setAccessible(true);
24. // 字段名
25. System.out.print(fields[j].getName() + ",");
26. // 字段值
27. if (fields[j].getType().getName().[A1] equals(
28. java.lang.String.class.getName())) {
29. // String type
30. try {
31. System.out.print(fields[j].get(obj));
32. } catch (IllegalArgumentException e) {
33. // TODO Auto-generated catch block
34. e.printStackTrace();
35. } catch (IllegalAccessException e) {
36. // TODO Auto-generated catch block
37. e.printStackTrace();
38. }
39. } else if (fields[j].getType().getName().equals(
40. java.lang.Integer.class.getName())
41. || fields[j].getType().getName().equals("int")) {
42. // Integer type
43. try {
44. System.out.println(fields[j].getInt(obj));
45. } catch (IllegalArgumentException e) {
46. // TODO Auto-generated catch block
47. e.printStackTrace();
48. } catch (IllegalAccessException e) {
49. // TODO Auto-generated catch block
50. e.printStackTrace();
51. }
52. }
53. // 其他类型。。。
54. }
55. System.out.println();
56. }
57. }
58.
59. class Person {
60. private int id;
61. private String name;
62.
63. public int getId() {
64. return this.id;
65. }
66.
67. public void setId(int id) {
68. this.id = id;
69. }
70.
71. public String getName() {
72. return this.name;
73. }
74.
75. public void setName(String name) {
76. this.name = name;
77. }
78.
79. }
结果:
id,0
name,张三
它是获取字段的类型名称如int
Double,string等
最后
以上就是曾经鞋垫为你收集整理的如何利用反射获取字段的数据的全部内容,希望文章能够帮你解决如何利用反射获取字段的数据所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复