反射-访问类变量的方法
来源:互联网 发布:淘宝一般违规累计扣分 编辑:程序博客网 时间:2024/06/05 02:11
通过java的反射机制,可以轻松获得类变量的所有信息,并且可以修改变量的值,如果这些属性是private活protected的,则必须设置setAccessible(true)的方法,否则会抛出IllegalAccessException异常,如果java安全机制,则可能会抛出securityException异常
import java.lang.reflect.Field;public class fieldTest {public static void main(String[] args) throws IllegalAccessException{House house=new House("gdgdg",160,300,"peking wangfujing","wang");Class c=house.getClass();Field[] fields=c.getDeclaredFields();System.out.println("共有成员变量:"+fields.length);System.out.println("-----------------------------");for(Field field:fields){field.setAccessible(true);Class t=field.getType();if (t==String.class){System.out.println(field.getName()+":"+field.get(house));}if(t ==int.class){System.out.println(field.getName()+":"+field.getInt(house));}}System.out.println("\n 变量设置新值");System.out.println("----------------------");for(Field field:fields){field.setAccessible(true);String n=field.getName();if (n.equalsIgnoreCase("owner")){field.set(house,"wang liang");}if (n.equalsIgnoreCase("space")){field.set(house,field.getInt(house)*2);}if (n.equalsIgnoreCase("price")){field.set(house,field.getInt(house)*2);}if (n.equalsIgnoreCase("address")){field.set(house,"fujian yongding");}if (n.equalsIgnoreCase("name")){field.set(house,"wanglu house");} }for(Field field:fields){System.out.println(field.getName()+":"+field.get(house));}}} class House{public String owner;protected int space;private int price;private String address;private static String name;public House(){}public House(String owner,int space,int price,String address,String n){this.owner=owner;this.space=space;this.price=price;this.address=address;name=n;}}
结果:
house的实例获得了class对象,通过class对象获取的house的所有属性,并将变量的名字和字值打印出来,然后通过设置setAccessible(true)方法,修改house的公共变量和私有变量。
0 0
- 反射-访问类变量的方法
- 利用java反射机制,实现对类的私有变量和私有方法的访问
- 利用java反射机制,实现对类的私有变量和私有方法的访问
- 利用java反射机制,实现对类的私有变量和私有方法的访问
- Java反射机制访问类私有方法和变量
- 如何通过Java反射访问类里面的私有方法和变量
- 通过反射访问对象的私有变量和执行私有方法
- 反射访问成员变量
- 使用Java反射机制实现访问类中的私有变量或者方法
- 子类用反射可以访问父类中的私有成员变量及方法
- java反射访问私有变量和私有方法
- Java反射访问私有变量和私有方法
- Java反射访问私有变量和私有方法相关搜集
- 使用反射,访问私有构造方法,域变量
- Java通过反射访问私有成员变量和私有方法
- java通过反射技术访问私有变量和方法
- 【Java】java使用反射访问对象方法和成员变量
- 如何通过反射访问私有变量和私有方法
- CentOS安装nodejs
- CLRS 8.3基数排序
- 跟着猫哥学Golang[3] - if else
- 简单齐全的webview与H5 交互 多中自定义进度条
- java socket 编程 服务器一直监听
- 反射-访问类变量的方法
- 九度OJ 1189:还是约瑟夫环 (约瑟夫环)
- Storm——Storm集成kafka
- 使用NDK过程中出现“Unresolved inclusion jni.h”
- JS与Native交互初识
- Linux命令大全----系统管理相关命令
- struts2 之配置拦截器使网站页面在session失效后退回到登录页面
- php数组
- 电容滤波半径