通过反射调用setter及getter方法
来源:互联网 发布:js forech 编辑:程序博客网 时间:2024/05/21 10:17
通过反射调用setter及getter方法
package org.lxh.demo15.classinfodemo ;interface China{// 定义China接口public static final String NATIONAL = "China" ;// 定义全局常量public static final String AUTHOR = "李兴华" ;// 定义全局常量public void sayChina() ;// 无参的,没有返回值的方法public String sayHello(String name,int age) ;// 定义有两个参数的方法,并返回内容}public class Person implements China{private String name ;private int age ;public Person(){// 无参构造}public Person(String name){this.name = name ;// 设置name属性}public Person(String name,int age){this(name) ;this.age = age ;}public void sayChina(){// 覆写方法System.out.println("作者:" + AUTHOR + ",国籍:" + NATIONAL) ;}public String sayHello(String name,int age){return name + ",你好!我今年:" + age + "岁了!" ;}public void setName(String name){this.name = name ;}public void setAge(int age){this.age = age ;}public String getName(){return this.name ;}public int getAge(){return this.age ;}};
package org.lxh.demo15.classinfodemo ;import java.lang.reflect.Method ;public class InvokeSetGetDemo{public static void main(String args[]){Class<?> c1 = null ;Object obj = null ;try{c1 = Class.forName("org.lxh.demo15.classinfodemo.Person") ;// 实例化Class对象}catch(Exception e){}try{obj = c1.newInstance() ;}catch(Exception e){}setter(obj,"name","李兴华",String.class) ;// 调用setter方法setter(obj,"age",30,int.class) ;// 调用setter方法System.out.print("姓名:") ;getter(obj,"name") ;System.out.print("年龄:") ;getter(obj,"age");}/**Object obj:要操作的对象String att:要操作的属性Object value:要设置的属性内容Class<?> type:要设置的属性类型*/public static void setter(Object obj,String att,Object value,Class<?> type){try{Method met = obj.getClass().getMethod("set"+initStr(att),type) ;// 得到setter方法met.invoke(obj,value) ;// 设置setter的内容}catch(Exception e){e.printStackTrace() ;}}public static void getter(Object obj,String att){try{Method met = obj.getClass().getMethod("get"+initStr(att)) ;// 得到setter方法运行结果:
姓名:李兴华年龄:30
0 0
- 通过反射调用setter及getter方法
- Java反射机制-调用setter及getter方法
- java基础之反射-通过反射调用某个属性的setter和getter方法
- 通过PropertyDescriptor反射获取属性的 getter/setter 方法
- getter和setter方法
- setter-getter方法
- setter和getter方法
- setter和getter方法
- swift getter setter方法
- setter getter方法
- getter和setter方法
- getter和setter方法
- java反射getter和setter
- javaBean Getter与Setter方法的内省调用
- objective-c中的属性定义及getter / setter方法
- setter方法和getter方法
- setter方法和getter方法
- setter方法和getter方法
- LaTeX技巧168:如何让行间公式左对齐
- HDOJ 1212 Big Number【同余定理】
- TabLayout的简单使用
- 文件名搜索分词设计
- 发现一个很棒的网站,技术 + 音乐 + 其他一切
- 通过反射调用setter及getter方法
- HTML+CSS实现图片下半部分遮罩文字效果(仿微信推送信息的图片文字效果)
- 左孩子右兄弟表示多叉树查找返回下一个节点
- 学习笔记-斯坦福iOS7-第十五课:MapKit和嵌入Segue
- Gson——偷个懒,常用查询
- “the import java.io cannot be resolved”错误的解决方法
- [Misc]利用cmdline,将参数从preloader传递到kernel
- 多线程
- ConcurrentHashMap 的实现原理