- 浏览: 991520 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
/** * Person JavaBean * * JavaBean的要求:有get,set方法,JavaBean的属性值是根据get,set方法后面的内容来确定的。 * * @author 张明学 * */ public class PersonBean { private String name; private int age; private Date birthday = new Date(); private String x; public PersonBean() { } public PersonBean(String name, int age) { this.name = name; this.age = age; } public String getP() { return x; } public void setP(String p) { this.x = p; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
注意上面的x属性和getP及setP方法
import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; /** * 内省(对JavaBean的操作) * * @author 张明学 * */ public class IntroSpectorStudy { public static void main(String[] args) throws Exception { PersonBean pb = new PersonBean("java", 23); pb.setP("p属性"); // 定义几个属性名称 String propertyP = "p"; String propertyName = "name"; String propertyAge = "age"; // **************PropertyDescriptor的使用**************\\ // 使用内省 Object returnValue = null; // 获取age属性 returnValue = getProperty(pb, propertyAge); System.out.println(returnValue); // 获取p属性(在PersonBean中只有getP,setP方法,没有P变量,getP,setP操作的是x变量,它的JavaBan属性名是p) returnValue = getProperty(pb, propertyP); System.out.println(returnValue); String newValue = "C++"; // 设置name属性 setProperty(pb, propertyName, newValue); System.out.println(pb.getName()); // **************BeanInfo的使用**************\\ // 其它办法: BeanInfo beanInfo = Introspector.getBeanInfo(PersonBean.class); // PersonBean所有的属性 PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors(); for (int i = 0; i < pds.length; i++) { System.out.println("--------属性名:" + pds[i].getName() + "--------"); System.out.println("属性类型:" + pds[i].getPropertyType()); System.out.println("get方法:" + pds[i].getReadMethod()); System.out.println("set方法:" + pds[i].getWriteMethod()); } } /** * 获取JavaBean的属性值 * * @param bean * JavaBean对象 * @param propertyName * 属性名称 * @return 该JavaBean对象的属性值 * @throws Exception */ private static Object getProperty(PersonBean bean, String propertyName) throws Exception { Object returnValue = null; PropertyDescriptor pd = new PropertyDescriptor(propertyName, PersonBean.class); Method methodGetAge = pd.getReadMethod(); returnValue = methodGetAge.invoke(bean, null); return returnValue; } /** * 设置JavaBean的属性值 * * @param bean * JavaBean对象 * @param propertyName * 属性名 * @param propertyValue * 设置的属性值 * @throws Exception */ private static void setProperty(PersonBean bean, String propertyName, String propertyValue) throws Exception { PropertyDescriptor pd; pd = new PropertyDescriptor(propertyName, PersonBean.class); Method methodSet = pd.getWriteMethod(); methodSet.invoke(bean, propertyValue); } }
23 p属性 C++ --------属性名:age-------- 属性类型:int get方法:public int com.mengya.PersonBean.getAge() set方法:public void com.mengya.PersonBean.setAge(int) --------属性名:birthday-------- 属性类型:class java.util.Date get方法:public java.util.Date com.mengya.PersonBean.getBirthday() set方法:public void com.mengya.PersonBean.setBirthday(java.util.Date) --------属性名:class-------- 属性类型:class java.lang.Class get方法:public final native java.lang.Class java.lang.Object.getClass() set方法:null --------属性名:name-------- 属性类型:class java.lang.String get方法:public java.lang.String com.mengya.PersonBean.getName() set方法:public void com.mengya.PersonBean.setName(java.lang.String) --------属性名:p-------- 属性类型:class java.lang.String get方法:public java.lang.String com.mengya.PersonBean.getP() set方法:public void com.mengya.PersonBean.setP(java.lang.String)
发表评论
-
HttpURLConnection附件上传
2015-05-15 18:25 3419整合了一个自己写的采用Http做附件上传的工具,分享一下! ... -
java自带线程池和队列详细讲解
2014-11-29 16:39 8513Java线程池使用说明 一简介 线程的使用在java中占 ... -
使用CGLIB的代理技术
2010-06-09 19:04 1540import java.lang.reflect.Method ... -
使用反射和注解模拟Spring的依赖注入
2010-06-09 19:00 4513作为一个应用Java的反射和注解的一个使用。 首简写一个XM ... -
Java基础十:JDK 动态代理类分析(java.lang.reflect.Proxy使用)
2010-05-28 19:25 4139/** * JDK 动态代理类分析(java.lang.r ... -
Java基础九:Java中的类加载器说明,可以对class文件加密,自定义ClassLoader
2010-05-28 19:22 3708/** * Java 类加载器 * * @aut ... -
Java基础八:泛型,?通配符
2010-05-28 19:17 6290/** * JDK1.5 泛型 * * @aut ... -
Java基础七:注解Annotation使用说明
2010-05-28 19:14 4027import java.lang.annotation.Ele ... -
Java基础六:apache的Beanutils简单使用对JavaBean操作的封装
2010-05-28 19:08 2188/** * apache的Beanutils简单使用 ... -
Java基础四: 反射(构造方法,成员变量,普通方法,数组)
2010-05-28 18:58 5780/** * 反射(构造方法,成员变量,普通方法,数组) ... -
Java基础三: 枚举高级应用(向枚举值对象中添加变量和方法)
2010-05-28 18:45 3860/** * JDK1.5 枚举高级应用(向枚举值对象中添加 ... -
Java基础二: hashCode的作用简要说明,可能导致对象在集合中无法删除
2010-05-28 18:30 1643import java.util.ArrayList; im ... -
Java基础一: 自动装箱,折箱、静态导入、可变参数
2010-05-28 18:24 1629自动装,折箱 /** * JDK1.5 自动装箱,折箱 ... -
apache StringUtils常见用法说明
2009-10-28 17:24 44421.空字符串检查使用函数: StringUtils.isBla ... -
产生随机字符串(a-z A-Z 0-9)
2009-09-25 17:47 3137实现方法一: public class RandomFile ... -
计算离当前日期之前或之后任意天的日期
2009-06-18 13:33 1505/** * 日期计算 * * @author z ... -
计算Java日期Date,DateFormat,GregorianCalendar的使用
2009-06-16 17:09 17966概要 不管你是处理财务交易还是计划着下一步的行动,你都要知 ... -
Java计算日期今天,昨天,上周,上月
2009-06-16 16:53 8443功能:今天,昨天,本周,上周,本月,上月 范围:以周一作为一 ... -
@SuppressWarnings(unchecked)作用解释.doc
2009-05-13 09:17 34642解释一: 屏蔽某些编译时的警告信息 ... -
JDK实现AOP动态代码
2009-04-20 14:29 62代理类: import java.lang.refle ...
相关推荐
在 JSP 页面中,可以使用三个特殊标签来操作 JavaBean: 1. `<jsp:useBean>`:用于查找或实例化 JavaBean。 2. `<jsp:setProperty>`:用于设置 JavaBean 的属性。 3. `<jsp:getProperty>`:用于获取 JavaBean 的...
- **内省(Introspection)**:允许组件揭示其属性和操作,便于其他组件的发现和重用。 - **通信(Communication)**:通过事件机制传递消息,实现组件间的交互。 - **持久性(Persistence)**:保存组件状态,以便在不同...
总的来说,`minimalcode-reflect`是一个专注于JavaBean的反射和内省的框架,它简化了对JavaBean的常规操作,同时也提供了对字节码生成、注解处理和类型操作的支持,为Java开发带来了便利。通过深入理解和使用这个库...
Java内省(Introspector)是Java语言提供的一种机制,用于在运行时分析Java对象的属性、方法和事件。...了解并熟练掌握Java内省机制,可以提高代码的灵活性和可维护性,尤其是在处理基于JavaBean的复杂系统时。
课程涵盖了多个关键知识点,包括Eclipse的使用技巧、静态导入、可变参数、增强for循环、基本数据类型的自动拆箱与装箱、枚举、反射、JavaBean内省、BeanUtils工具包、注解、泛型、类加载器、代理以及线程并发库等。...
内省机制(Introspection)是Java提供的一种工具,用于获取和操作JavaBeans对象的属性。例如,通过Introspector、BeanInfo和PropertyDescriptor等类,可以方便地获取和设置JavaBean的属性值。 BeanUtils是Apache ...
内省(Introspection)则主要用于JavaBean的属性操作,如`set`和`get`方法,配合`Instrospector`、`BeanInfo`和`PropertyDescriptor`,可以方便地读写JavaBean的属性。此外,了解并熟练运用这些技术,能够有效地提高...
本PPT旨在帮助对Java有一定基础的开发者进行复习和提升,通过简洁而全面的讲解,促进对关键知识点的理解和应用。 首先,我们来看看Eclipse的使用技巧。Eclipse是一款强大的集成开发环境(IDE),对于Java开发来说至...
3. **操作成员信息**:利用`java.lang.reflect`包下的其他类,如`Method`、`Field`等,对获取的信息进行读取或修改。 获取`Class`对象的方式有三种: 1. **运行时类名获取**:当编译时不知道类名,但在运行时可以...
在实际开发中,JavaBean经常被用在JSP中,作为页面的数据模型,通过EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)标签来访问和操作Bean的属性,从而实现动态网页的生成。此外,...
总的来说,Java内省提供了一种强大的工具,让我们能够在运行时动态地探索和操作Java对象,特别是对于符合JavaBean规范的对象。这使得我们可以编写更加灵活、可复用的代码,而不需要对每个对象的内部结构有深入的了解...
4. **内省和JavaBean原理分析**:内省是Java中用于探测对象属性和方法的技术,本章会介绍JavaBean的基本操作及其内省的复杂应用,利用`BeanUtils`工具进行操作。 5. **注解的了解和应用**:注解是元数据的一种形式...
`Introspector` 是Java内省的核心类,它提供了一系列的方法来获取关于JavaBean的信息。例如,`Introspector.getBeanInfo(Class)` 方法可以获取指定类的BeanInfo,这包含了关于类的属性(PropertyDescriptor)、事件...
7. **Commons-beanutils**:通过反射和内省操作JavaBean,简化属性的获取和设置。 8. **Commons-codec**:包含多种编码算法,如Base64、Hex、URL编码等。 9. **Commons-collections**:提供了对Java集合框架的扩展...
6. **BeanUtils工具**:Apache Commons提供的库,简化JavaBean操作。 7. **注解**:元数据,提供编译时和运行时信息,用于代码的自我描述。 8. **泛型**:提高类型安全,避免强制类型转换,减少运行时错误。 9. **类...
讲一些经典的:静态导入 自动装箱/拆箱 增强for循环 可变参数 内省(Introspector) — JavaBean ......
java基础加强ppt(张孝祥版_黎活明版)eclipse的使用技巧、静态导入、可变参数与for循环增强、基本数据类型的自动拆箱与装箱、枚举、反射、JavaBean内省、beanutils工具包、注解、泛型、类加载器、代理、线程并发库
eclipse的使用技巧 静态导入 可变参数与for循环增强 基本数据类型的自动拆箱与装箱 枚举 反射 JavaBean内省 beanutils工具包 注解 泛型 类加载器 代理 线程并发库
- **事件适配器(Event Adapters)**:提供了一个简单的基础类,可以从中选择性地覆盖感兴趣的方法来处理事件。 - **事件过滤(Event Filtering)**:允许根据特定条件过滤传入的事件。 - **事件队列(Event ...