黑马程序员_JavaBean_内省
2013-11-27 04:17
453 查看
------- android培训、java培训、期待与您交流! ----------
由内省引出的JavaBean的讲解
JavaBean 是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。
如果第二个字母是小写的,则把第一个字母改成小写的
如果第二个字母是大写写的,则把第一个字母也要是大写的
如: setId() 的属性名--> id
setCPU() 的属性名是 --> CPU
下面是一段简单的一个JavaBean类代码:
如果要在两个模块之间传递信息,可以将这些信息封装成JavaBean中,这种JavaBean的实体对象,通常称之为值对象(Value
Object,简称VO),这些信息在类中用私有字段来存储,如果读取或设置这些字段值,则需要通过一些方法来访问。 一个JavaBean类可以不当JavaBean用,而是当成普通类用。JavaBean实际就是一种规范,当一个类满足这个规范,这个类就能被其它特定的类调用.
代码:
Student类:
------- android培训、java培训、期待与您交流! ----------
由内省引出的JavaBean的讲解
JavaBean 是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。
如果第二个字母是小写的,则把第一个字母改成小写的
如果第二个字母是大写写的,则把第一个字母也要是大写的
如: setId() 的属性名--> id
setCPU() 的属性名是 --> CPU
下面是一段简单的一个JavaBean类代码:
class Student { private String name; private int age; public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
如果要在两个模块之间传递信息,可以将这些信息封装成JavaBean中,这种JavaBean的实体对象,通常称之为值对象(Value
Object,简称VO),这些信息在类中用私有字段来存储,如果读取或设置这些字段值,则需要通过一些方法来访问。 一个JavaBean类可以不当JavaBean用,而是当成普通类用。JavaBean实际就是一种规范,当一个类满足这个规范,这个类就能被其它特定的类调用.
代码:
Student类:
class Student { private String name; private int age; public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }JavaBeanTest测试类:
package cn.itcast; import java.beans.*; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class JavaBeanTest { public static void main(String[] args) throws Exception { Student stu1 = new Student("Mike",22); String propertyName = "name"; PropertyDescriptor pd = new PropertyDescriptor(propertyName, stu1.getClass()); Method methodGetName = pd.getReadMethod(); Object retval = methodGetName.invoke(stu1); System.out.println(retval); Method methodSetName = pd.getWriteMethod(); methodSetName.invoke(stu1, "David"); System.out.println(stu1.getName()); } }用重构来写JavaBeanTest 类:
public class JavaBeanTest { public static void main(String[] args) throws Exception { Student stu1 = new Student("Mike",22); String propertyName = "name"; Object retval = getProperty(stu1, propertyName); System.out.println(retval); setProperty(stu1, propertyName); System.out.println(stu1.getName()); } private static void setProperty(Student stu1, String propertyName) throws IntrospectionException, IllegalAccessException, InvocationTargetException { PropertyDescriptor pd2 = new PropertyDescriptor(propertyName, stu1.getClass()); Method methodSetName = pd2.getWriteMethod(); methodSetName.invoke(stu1, "David"); } private static Object getProperty(Student stu1, String propertyName) throws IntrospectionException, IllegalAccessException, InvocationTargetException { PropertyDescriptor pd = new PropertyDescriptor(propertyName, stu1.getClass()); Method methodGetName = pd.getReadMethod(); Object retval = methodGetName.invoke(stu1); return retval; } }
------- android培训、java培训、期待与您交流! ----------
相关文章推荐
- 老师这份职业
- 老师这份职业
- 黑马程序员_HashCode_框架_配置文件
- 陈利人 面试题 对于一个n位正整数a,去掉其中任意k(k<=n)个数字后,剩下的数字按原次序排列可以组成一个新的正整数。设计一个删数算法,使得剩下的数字组成的正整数最小。
- 成为优秀程序员的方法就是抛开编程?
- 告别央视一一留给这个时代的一些“真话”
- Java程序员在写SQL程序时候常犯的10个错误
- 苦B程序员们,你的法拉利呢?
- 程序员面试宝典
- 程序员必知8大排序3大查找(一)
- 微软面试100题2010年版全部答案集锦(含下载地址)
- 十月上旬百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题)
- 九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
- 九月十月百度,迅雷,华为,阿里巴巴最新校招笔试面试六十题(11.05)
- 黑马程序员_枚举
- 程序员的基本技能
- 一位女程序员的奋斗路程
- 程序员是“逻辑人”
- 一位女程序员的奋斗路程
- 影响一生的职业建议