利用反射能
//假设类名为A// 实例化类
A p = new A()
// 获取class
Class c = p.getClass()
// 获取该类所有的字段
Field[] fields = c.getDeclaredFields()
// 遍历赋值
for (int i = 0 i < fields.length i++) {
String filedName = fields[i].getName()
// AccessibleTest类中的成员变量为private,故必须进行此操作
fields[i].setAccessible(true)
// 判断类型
Class<?> type=fields[i].getType()
//获取字段类型
String typeName=type.getName()
System.out.println(type.getName())
// 对字段进行赋值 第一个参数为对象引用第二个参数为要附的值
//如果为字符串类型
if("java.lang.String".equals(typeName)){
fields[i].set(p, "1")
}
//如果为日期类型
else if("java.util.Date".equals(typeName)){
fields[i].set(p, new Date())
}
else{
fields[i].set(p, 1)
}
}
//楼主我只是简单的写了下。可能还需要判断字段名称以及其他类型什么的。
最后希望楼主多看看java 文档。
private,public类似与 WEB系统中管理员,普通用户权限 . 是一种权限安全机制 反射的主要目的并不在与看到私有方法,更重要的是能在运行时可以动态自查自己的结构,在开发某些功能时特别有用, 例如:(1)把XML节点自动映射后JAVA BEAN中.JAVA中反射是动态获取信息以及动态调用对象方法的一种反射机制。
Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态语言的一个关键性质。
Java反射的功能是在运行时判断任意一个对象所属的类,在运行时构造任意一个类的对象,在运行时判断任意一个类所具有的成员变量和方法,在运行时调用任意一个对象的方法,生成动态代理。
扩展资料:
JAVA中反射实例:
1、Class superClass=clazz.getSuperclass()//获取父类。
System.out.println("getSuperclass:"+superClass)。
2、Class[] interfaces=clazz.getInterfaces()//获取实现接口。
System.out.println("getInterfaces:"+interfaces.length)。
3、Constructor[] cons=clazz.getConstructors()//构造方法。
System.out.println("getConstructors:"+cons.length)。
参考资料来源:百度百科: JAVA反射机制