- 浏览: 120553 次
- 性别:
- 来自: 广西
文章分类
最新评论
-
greemqqran:
这方法 源码,是怎么的哦?
可变参数,数组与集合之间的转换 -
greemqqran:
Arrays.asList
可变参数,数组与集合之间的转换 -
ricoyu:
引用? super E:接收的是E类型对象应该是: ? sup ...
泛型-
package com.dhcool.introspect; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import com.dhcool.bean.Student; /** * 内省处理JavaBean有两种常用的方式: * 1.创建出PropertyDscriptor,创建的时候要给出要获取属性的名称和具体要获取的类Class * 得到PropertyDscriptor后就可以去调用它的方法来处理,主要还是pd.getReadMethod();获取属性值,pd.getWriteMethod();设置属性值,得到具体的方法Method * 由Method去invoke()然后传递具体的参数(反射调用) ,就可以设置获取相应的值 * * * 2.用Introspector.getBeanInfo(student.getClass());去获取特定类的BeanInfo,就是Bean的包装信息 * 然后根据BeanInfo去获取 属性描述器PropertyDscriptors获取到的是一个PropertyDscriptor[]数组 * 然后迭代这个数组,获取相应属性的属性描述器 PropertyDscriptor * 有了PropertyDscriptor就可以去获取相应的方法,之后就可以反射调用相应的方法了 * * */ public class IntrospectTest { public static void main(String[] args) throws Exception { Student student = new Student(); String propertyName = "name"; setProperty(student, propertyName,"蓝"); System.out.println(getProperty(student, propertyName)); } //获取属性值 private static Object getProperty(Object student, String propertyName) throws IntrospectionException, IllegalAccessException, InvocationTargetException { /*PropertyDescriptor pd = new PropertyDescriptor(propertyName,student.getClass()); Method method = pd.getReadMethod(); return method.invoke(student);*/ //另一种处理方式 BeanInfo beanInfo = Introspector.getBeanInfo(student.getClass()); PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors(); Object obj = null; for(PropertyDescriptor pd : pds){ if(pd.getName().equals(propertyName)){ Method method = pd.getReadMethod(); obj = method.invoke(student); } } return obj; } //设置属性值 private static Object setProperty(Object student, String propertyName, Object value) throws IntrospectionException, IllegalAccessException, InvocationTargetException { //PropertyDescriptor属性描述器,用于获取属性的一些列信息,初始化的时候要给定要获取的属性名称,和要获取的类class PropertyDescriptor pd = new PropertyDescriptor(propertyName,student.getClass()); //获取setName方法 Method methodName = pd.getWriteMethod(); //获取了这个方法之后就去调用执行这个方法。如果是静态的方法就不用传入具体的对象,如果是非静态的就要传入具体的对象 return methodName.invoke(student,value); } }
发表评论
-
动态代理+注解实现用户权限控制
2012-12-23 00:01 1366首先第一步我们需要定义一个接口UserDao p ... -
JDK动态代理模式
2012-12-22 21:51 900package cn.dhcool.dynamic.proxy ... -
代理proxy模式
2012-12-22 20:45 0静态代理模式: 需要有一个公共的借口,还有一个真实的实现类, ... -
工厂模式下出现的问题-null异常
2012-12-15 18:31 923遇到了一个问题: public class Dao ... -
内部类详解
2011-12-09 21:23 671从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论 ... -
动态代理实现
2011-11-22 02:03 1049package com.dhcool.proxy; ... -
线程锁
2011-10-10 13:27 822sleep(), wait(),yield(),这3个方法,s ... -
类似百度谷歌分页算法实现
2011-09-08 15:58 1596<%@ page language="j ... -
充当服务端代码
2011-08-05 16:53 677import java.net.*; import java ... -
获取文件中邮件的示例
2011-08-05 12:25 739import java.util.regex.*; impo ... -
正则表达式常用字符
2011-08-05 12:22 923构造 匹配 字符 x 字符 x ... -
正则表达式
2011-08-05 12:16 849第一种:1.定义匹配规则如:String qqreg = &q ... -
InetAddress
2011-08-04 21:59 905import java.net.*; class Inet ... -
B/S socket
2011-08-04 21:08 1031import java.net.*; import java ... -
TCP多线程文件上传
2011-08-04 14:51 898/* 上传图片 */ import java.io.*; ... -
网络编程基础
2011-08-04 14:25 840网络编程: 网络通讯中所需要了解的一些内容。 T ... -
一道题
2011-08-02 21:05 615/* 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据 ... -
TCP
2011-08-02 20:46 783import java.net.*; import ja ... -
UDP
2011-08-02 20:35 865import java.net.*; import java ... -
mypad小程序
2011-08-02 15:48 756package menupack; import jav ...
相关推荐
总结,本主题主要涉及Java的IOC和AOP概念,以及如何通过内省技术实现类似Spring的功能。通过这个过程,我们可以更深入地理解Spring的工作原理,同时提高我们的编程技巧和解决问题的能力。在源码和工具方面,我们可以...
总结来说,PHP重构和内省工具是提升PHP开发效率、优化代码质量的重要手段。它们通过自动化和智能化的方式,减轻了开发者的工作负担,使代码更易于理解和维护。了解并熟练掌握这些工具,对于任何PHP开发者来说,都是...
### 总结 JavaBean 作为一种标准的组件模型,在 Java 开发中起着重要作用。它不仅有助于提高代码的可维护性和复用性,而且还是许多 Java 框架(如 Spring)的基础。掌握 JavaBean 的编写和使用方法,对于 Java ...
#### 四、总结 反射和内省都是Java中非常强大的特性,能够显著提高程序的灵活性和可扩展性。通过对类和对象的元数据进行操作,这两种技术使得开发者能够在运行时动态地改变程序的行为,这对于构建高度灵活的应用...
总结起来,"【IT十八掌徐培成】Java基础第25天-03.递归获取所有超类-内省获取所有属性-getter-setter.zip"这个课程可能涵盖了如何利用Java的递归技术遍历类的继承树,以及通过内省机制动态访问和修改对象的属性,...
这份"Java基础加强-个人总结doc"文档,结合了张孝祥老师的PPT,为我们提供了全面而深入的学习材料。以下是这份文档可能涵盖的一些核心知识点: 1. **基础知识**:这部分涵盖了Java语言的基础语法,包括变量、数据...
它通过回顾过去,发现和分析问题,从而指导未来的工作,更加注重内省和自我提升。而述职报告的目的则在于对外展示,它不仅是对个人工作能力的展示,更是对组织和上级的一个交代,它是个人职业发展和组织监督评估的...
4. **自我反思与内省**:对于教学效果和学习进步,应经常进行自我反省和总结,寻找改进方法。 5. **独立完成任务**:不论是学生还是教师,诚信和独立完成作业是基本素质,这有助于培养个人责任感和解决问题的能力。 ...
#### 总结 这些内排序算法,包括插入排序、希尔排序、冒泡排序和快速排序,各自有其特点和适用场景。插入排序适用于小规模或基本有序的数据集;希尔排序通过引入增量序列优化了插入排序,提高了效率;冒泡排序虽然...
4. **自我反思与总结**:通过常读书和深思熟虑,教师能够对自己的教学实践进行反思和内省,找出不足并寻求改进策略。同时,学习并提炼同行的成功经验,为教学理论的创新打下基础。 5. **教学质量的保障**:在日常...
曾子提出的内省法,正是这一理念的具体实践,它提醒我们在混乱的时代背景下,更要坚守道德底线,通过自我反省来提升个人品质。 总结来说,《论语》中的这两则名言不仅教导我们要平衡内在品质与外在教养,还强调通过...
1. 构造主义学派:由德国的冯特和铁钦纳为代表,主张通过实验内省法来研究心理内容,即直接体验到的心理元素。冯特于1879年在莱比锡大学建立了第一个心理学实验室,标志着心理学的独立。他们强调心理是由基本元素...
以下是针对辽宁省教师资格证考试中教育心理学部分的知识点总结。 一、心理学流派与代表人物 1. 构造主义心理学:冯特和铁钦纳主张通过内省法研究人的内在心理结构。 2. 技能主义学历学:詹姆斯、杜威和安吉尔关注...
【茶行实习总结】 在2021年的茶行实习经历中,我深入了解到茶行业的独特魅力和丰富内涵。实习期间,我在李记茶行学习并实践,这不仅让我掌握了丰富的茶学理论知识,更重要的是,我体会到了茶行工作中的职业道德与...
【普通心理学精华总结】 普通心理学是研究人类心理现象和行为的科学,主要关注个体的内在心理过程和外在行为表现。以下是对这一领域的核心概念、研究方法及其发展历程的详细阐述。 1. 心理学的研究对象 心理学...
这份PPT(幻灯片)旨在总结和解释其中的关键特性。 1. **泛型(Generics)** 泛型允许在类、接口和方法中使用类型参数,提高了代码的类型安全性,避免了运行时类型转换异常。通过泛型,开发者可以编写更具通用性的...
IPython提供了增强的命令行功能,如tab补全、内省(`?`和`??`)、魔术命令(`%`开头的功能)。`%run`命令用于运行Python脚本,`%load`用于加载Notebook中的代码单元,`%paste`和`%cpaste`则用于从剪贴板中运行代码。...
- 结合多元智能,利用肢体语言、角色扮演等方式,让学生在实践中学习,提高他们的内省智能、交际智能和语言智能。 - 教师根据学生特点和教学内容灵活选用教学方法,确保学生在不同教学环节都能积极参与,提高学习...