java中利用反射获得对象的各种信息
来源:互联网 发布:雄风3误射大陆反应知乎 编辑:程序博客网 时间:2024/05/16 10:21
package com.dao;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.common.GetConnection;
import com.pojo.Person;
public class SqlDaoImpl {
private static Connection conn;
private static PreparedStatement ps;
private static ResultSet rs;
static{
conn = GetConnection.getConn();
}
public void insert(Object object) throws Exception{
//fields[i].getName()//返回此 Field 对象表示的字段的名称。
//fields[i].getType()//返回一个 Class 对象,它标识了此 Field 对象所表示字段的声明类型
//fields[i].get(object).toString();//获得对象值
//利用反射机制获得对象的全部信息
Field[] fields = object.getClass().getDeclaredFields();
System.out.println("获得对象所有属性名。。。。。。。。");
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName();
System.out.println(name);
}
System.out.println("获得对象所有属性被声明的类型。。。。。。。。");
for (int i = 0; i < fields.length; i++) {
String type = fields[i].getType().toString();
System.out.println(type);
}
System.out.println("获得对象所有属性所对应的值。。。。。。。。");
for (int i = 0; i < fields.length; i++) {
fields[i].setAccessible(true);
String value = fields[i].get(object).toString();
System.out.println(value);
}
System.out.println("获得对象所有属性所对应的类型和值。。。。。。。。");
for (int i = 0; i < fields.length; i++) {
String name = fields[i].getName();
String type = fields[i].getType().toString();
fields[i].setAccessible(true);
String value = fields[i].get(object).toString();
System.out.println("对象"+name+" 的类型为"+type+" 值为"+value);
}
}
public static void main(String[] args) throws Exception{
Person person = new Person();
person.setUsername("111");
person.setPassword("111");
person.setUsid(1);
SqlDaoImpl sd = new SqlDaoImpl();
sd.insert(person);
}
}
/**
备注:
Field[] fields = object.getClass().getDeclaredFields();//利用反射机制获得对象的全部信息
fields[i].getName()//返回此 Field 对象表示的字段的名称。
fields[i].getType()//返回一个 Class 对象,它标识了此 Field 对象所表示字段的声明类型
fields[i].get(object).toString();//获得对象值
getFields()、getDeclaredFields(),它们分别是用来获取反射类中所有公有属性和反射类中所有的属性的方法。另外还有
getField(String)和getDeclaredField(String)方法都是用来过去反射类中指定的属性的方法,要注意的是getField方法只能取到反
射类中公有的属性,而getDeclaredField方法都能取到。
这里还用到了Field 类的setAccessible方法,它是用来设置是否有权限访问反射类中的私有属性的,只有设置为true时才可以访问
,默认为false。另外Field类还有set(Object AttributeName,Object value)方法,可以改变指定属性的值。
*/
- java中利用反射获得对象的各种信息
- Java中通过反射获得对象的属性信息
- Java中通过反射获得对象的属性信息
- 利用JAVA中的反射机制获得某个类的信息
- java 利用反射获得超类的子对象
- 利用反射获得对象的属性值
- Java反射---Class对象,获得类的方法、成员变量和构造函数信息
- java 反射获得私有属性的对象
- Java的反射获得Class对象
- java开发中利用反射获取对象静态的方法
- Java中利用反射原理拷贝对象
- Java反射取得一个对象的信息
- java利用反射执行对象的方法
- 利用java反射机制获取一个类中信息
- 反射获得对象的值
- Java中获得操作系统信息的方法
- 利用Java反射机制获得私有成员
- 利用java的反射机制得到类的信息
- C++:在程序中获取全球唯一标识号(GUID或UUID)
- hadoop基础
- ubuntu 出错:E: Sub-process /usr/bin/dpkg returned an error code
- 第一个Unix Shell函数
- char格式化linux和windows区别
- java中利用反射获得对象的各种信息
- snprintf函数用法
- platform_device与platform_driver
- thunk window
- 2012蓝桥杯软件大赛决赛(源码变换)
- mykeycode
- java对数据库的操作(jdbc)
- 'find_if’ is not a member of ‘std'
- 一键锁屏卸载不了