java反射取对象中的各表量值
来源:互联网 发布:java log4j 编辑:程序博客网 时间:2024/05/16 09:35
package d;
import java.lang.reflect.Field;
public class bean01 {
public static void main(String[] args) {
bean02 bean = new bean02();bean.setId(222);
System.out.println(getPojoLog(bean));
}
//列出一个pojo所有的内容,以便测试时检查数据
public static String getPojoLog(Object pojo){
Class c = pojo.getClass();
StringBuffer out = new StringBuffer(c.getName() + ": \n ");
Field[] fields = c.getDeclaredFields();//或者 Field[] fields = c.getFields(); 2者的区别见附录
Field.setAccessible(fields, true);
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
String name = field.getName();
if(name.startsWith( "SF_ ")){
continue;
}
try {
Object vo = field.get(pojo);
String value = " ";
if (vo != null) {
value = field.get(pojo).toString();
}
out.append( " "+ name + " = " + value + "\n ");
} catch (Exception e) {
e.printStackTrace();
}
}
return out.toString();
}
}
package d;
public class bean02{
public int id;
public String[] love;
public String[] getLove() {
return love;
}
public void setLove(String[] love) {
this.love = love;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
1.package study.reflection; 2. 3.public class People { 4.public String name = null; 5.private String sex = null; 6.private String age = null; 7.private String tel = null; 8.private String address = null; 9.public static String s = null; 10.static { 11. System.out.println("loading People"); 12.} 13. 14.public static void showPeople() { 15. 16.} 17. 18.public People(String name) { 19. this.name = name; 20.} 21. 22.private People() { 23. this.name = name; 24.} 25. 26.private void showPeopleInfo() { 27. System.out.println(name + " " + sex + " " + age + " " + tel + " " 28. + address); 29.} 30. 31.public String getName() { 32. return name; 33.} 34. 35.public void setName(String name) { 36. this.name = name; 37.} 38. 39.public String getSex() { 40. return sex; 41.} 42. 43.public void setSex(String sex) { 44. this.sex = sex; 45.} 46. 47.public String getAge() { 48. return age; 49.} 50. 51.public void setAge(String age) { 52. this.age = age; 53.} 54. 55.public String getTel() { 56. return tel; 57.} 58. 59.public void setTel(String tel) { 60. this.tel = tel; 61.} 62. 63.public String getAddress() { 64. return address; 65.} 66. 67.public void setAddress(String address) { 68. this.address = address; 69.} 70. 71.} 72. 73.package esg; 74. 75.import java.lang.reflect.Constructor; 76.import java.lang.reflect.Field; 77.import java.lang.reflect.Method; 78. 79.import study.reflection.People; 80. 81.public class Esg { 82. 83.public static void main(String[] a) throws ClassNotFoundException { 84. Class c1 = People.class; 85. 86. Field[] fs = c1.getFields(); 87. System.out.println("*******getFields()*********"); 88. for (int i = 0; i < fs.length; i++) { 89. System.out.println(fs[i].getName()); 90. } 91. System.out.println("*******getDeclaredFields()*********"); 92. fs = c1.getDeclaredFields(); 93. for (int i = 0; i < fs.length; i++) { 94. System.out.println(fs[i].getName()); 95. } 96. System.out.println("*******getMethods()*********"); 97. Method[] md = c1.getMethods(); 98. for (int i = 0; i < md.length; i++) { 99. System.out.println(md[i].getName()); 100. } 101. System.out.println("*******getDeclaredMethods()*********"); 102. md = c1.getDeclaredMethods(); 103. for (int i = 0; i < md.length; i++) { 104. System.out.println(md[i].getName()); 105. } 106. 107. System.out.println("*******getConstructors()*********"); 108. Constructor[] con = c1.getConstructors(); 109. for (int i = 0; i < con.length; i++) { 110. System.out.println(con[i].getName()); 111. } 112. System.out.println("*******getDeclaredConstructors()*********"); 113. con = c1.getDeclaredConstructors(); 114. for (int i = 0; i < con.length; i++) { 115. System.out.println(con[i].getName()); 116. } 117.} 118.}
import java.lang.reflect.Field;
public class bean01 {
public static void main(String[] args) {
bean02 bean = new bean02();bean.setId(222);
System.out.println(getPojoLog(bean));
}
//列出一个pojo所有的内容,以便测试时检查数据
public static String getPojoLog(Object pojo){
Class c = pojo.getClass();
StringBuffer out = new StringBuffer(c.getName() + ": \n ");
Field[] fields = c.getDeclaredFields();//或者 Field[] fields = c.getFields(); 2者的区别见附录
Field.setAccessible(fields, true);
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
String name = field.getName();
if(name.startsWith( "SF_ ")){
continue;
}
try {
Object vo = field.get(pojo);
String value = " ";
if (vo != null) {
value = field.get(pojo).toString();
}
out.append( " "+ name + " = " + value + "\n ");
} catch (Exception e) {
e.printStackTrace();
}
}
return out.toString();
}
}
package d;
public class bean02{
public int id;
public String[] love;
public String[] getLove() {
return love;
}
public void setLove(String[] love) {
this.love = love;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
附录:
* getFields()与getDeclaredFields()区别:getFields()只能访问类中声明为公有的字段,私有的字段它无法访问.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关
* getMethods()与getDeclaredMethods()区别:getMethods()只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法
* getConstructors()与getDeclaredConstructors()区别:getConstructors()只能访问类中声明为public的构造函数.getDeclaredConstructors()能访问类中所有的构造函数,与public,private,protect无关
- java反射取对象中的各表量值
- java通过反射获取对象的变量和变量值
- 利用反射获取Java类中的静态变量名及变量值
- java 的反射机制获得变量及变量值
- 利用Java反射获取类的私有变量值
- 利用反射给对象中的某个属性赋值或取值
- class对象 java中的反射(J2SE入门20)
- 微信小程序----关于变量对象data 和 前端wxml取后台js变量值
- java反射分析对象
- Java反射---对象池
- JAVa面向对象--反射
- Java 反射创建对象
- java反射(对象拷贝)
- java反射创建对象
- shell cut 取变量值
- Java中的反射机制(二) 一个利用反射进行对象拷贝的例子
- Java中的反射机制 一个利用反射进行对象拷贝的例子
- Java中的反射(3)——在运行时使用反射分析实例化的对象
- Java程序员面试中的多线程问题
- HDU 2426
- 有关内存管理的部分试题
- linux shell 中"2>&1"含义
- 普洱茶的仓储流程
- java反射取对象中的各表量值
- 1002. Anti-prime Sequences
- Speex 一个开源的声学回声消除器(Acoustic Echo Cancellation)
- 关于类型对象作为形参和返回值时的一些问题
- android架构介绍
- 英语练习A busy Family
- Android开发--网络请求中GZip的使用(二)
- Hnust 1071 赫夫曼编码
- lucene学习笔记之构建索引