Java反射
2016-03-01 10:16
495 查看
一、对于任意一个类,都能知道这个类的所有属性和方法,对于任意一个对象,都能调用他的任意一个方法
二、获取反射机制的三种方法
1、Class c1 = Class.forName(“Employee”)
2、Class c2 = Employee.class;
3、Employee e = new Employee();
Class c3 = e.getClass();
创建对象:
Object o = c1.newInstance();
三、获取属性及方法
1、获取所有属性
2、获取特定名字的属性
3、获取方法
二、获取反射机制的三种方法
1、Class c1 = Class.forName(“Employee”)
2、Class c2 = Employee.class;
3、Employee e = new Employee();
Class c3 = e.getClass();
创建对象:
Object o = c1.newInstance();
三、获取属性及方法
1、获取所有属性
Class c = ViewConfiguration.class; Field[] fs = c.getDeclaredFields(); StringBuffer sb = new StringBuffer(); sb.append(Modifier.toString(c.getModifiers()) + "class" + c.getSimpleName());//获取类的修饰符private public protected for(Field field:fs){ sb.append(Modifier.toString(field.getModifiers())+" ");//获取属性的修饰符 sb.append(field.getType().getSimpleName()+" ");//获取属性的类型 sb.append(field.getName());//获取属性的名字 }
2、获取特定名字的属性
ViewConfiguration configuration = ViewConfiguration.get(this); Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); //打破封装 menuKeyField.setAccessible(true); //给属性赋值 menuKeyField.setBoolean(configuration, false);
3、获取方法
try { Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible",Boolean.TYPE); m.setAccessible(true); m.invoke(menu,true); } catch (Exception e) { e.printStackTrace(); }
相关文章推荐
- MavenEclipse
- 如何使用Android studio打开eclipse项目
- Java中Properties类的使用
- Java 流(Stream)、文件(File)和IO
- java 常用算法和时间复杂度
- java回调再回首
- Java 方法
- JAVA学习20160301
- JAVA 生成随机数,并根据概率、比率
- Zookeeper实现集群和负载均衡---(5)Zabbix集成Zookeeper示例
- Java并发编程:线程池的使用
- First Missing Positive
- Java多态中重写static函数
- 用Eclipse上传项目到svn服务器
- Java 正则表达式
- Struts2中的ModelDriven机制及其运用
- java中length属性、length()方法、size()方法的区别
- Java管道流的作用及应用
- spring学习小结8-使用factoryBean来配置bean
- Java中数组和List集合如何互相转换