`
把阳光剪成雨Java
  • 浏览: 25385 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

黑马程序员——内省

 
阅读更多

                 ----------------- android培训java培训、期待与您交流! -----------------

 

内省

1.  JavaBean

package introSpector;

public class IntroSpectorDemo {

    // javaBean符合特殊格式的类。 方法的名字以get或者set开头

//  通过getset方法判断属性。

//  Age-->如果第二个字母是小的,则把第一个字母变成小的-->age

//  gettime-->time

//  getCPU-->CPU

//  setTime-->time

//  getCpU-->cpU

 

    public static void main(String[] args) {

      

    }

/*一个符合JavaBean特点的类可以当作普通类一样进行使用,但把它当JavaBean用肯定需要带来一些额外的好处,我们才会去了解和应用JavaBean!好处如下:

Java EE开发中,经常要使用到JavaBean。很多环境就要求按JavaBean方式进行操作,别人都这么用和要求这么做,那你就没什么挑选的余地!

JDK中提供了对JavaBean进行操作的一些API,这套API就称为内省。如果要你自己去通过getX方法来访问私有的x,怎么做,有一定难度吧?用内省这套api操作JavaBean比用普通类的方式更方便。

*/

}

 

2.  内省的综合案例

 

private static void method2() throws Exception {

//     BeanInfo代表了 java类的细节。

       BeanInfo beanInfo = Introspector.getBeanInfo(ReflectPoint.class);

       PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();

       String popertyName=null;

       ReflectPoint p = new ReflectPoint(11, 2);

       for(PropertyDescriptor pd:pds){

           if(pd.getName().equals(popertyName)){

              Method method1 = pd.getReadMethod();

              String retVal = (String) method1.invoke(p);

              System.out.println(retVal);

           }

       }

    }

 

    private static void method1() throws IntrospectionException,

           IllegalAccessException, InvocationTargetException {

       //     通过PropertyDescriptor获取属性的基本信息。内部用了反射。

              ReflectPoint p = new ReflectPoint(6, 7);

              PropertyDescriptor pd = new PropertyDescriptor("x",ReflectPoint.class);

              Object retVal = pd.getReadMethod().invoke(p);

              System.out.println(retVal);

             

              pd.getWriteMethod().invoke(p, 8);

              System.out.println(p.getX());

}

 

 

3.  BeanUtils工具包

演示用eclipse如何加入jar包,先只是引入beanutils包,等程序运行出错后再引入logging包。

在前面内省例子的基础上,用BeanUtils类先get原来设置好的属性,再将其set为一个新值。

get属性时返回的结果为字符串,set属性时可以接受任意类型的对象,通常使用字符串。

PropertyUtils类先get原来设置好的属性,再将其set为一个新值。

get属性时返回的结果为该属性本来的类型,set属性时只接受该属性本来的类型。

演示去掉JavaBeanReflectPoint)的public修饰符时,BeanUtils工具包访问javabean属性时出现的问题。

 

 

 

分享到:
评论

相关推荐

    java内省思维导图

    特别详细的java内省思维导图,全方面介绍java内省的功能以及用法用处。

    用反射和内省技术实现简单SpringIOC

    本篇文章将深入探讨如何利用反射和内省技术来实现一个简单的Spring IOC。首先,我们来理解什么是反射和内省。 反射是Java提供的一种强大的动态类型机制,它允许程序在运行时检查类的信息,如类名、属性、方法等,并...

    java ioc,aop实现(内省),仿spring功能实现.

    而在IOC中,这种控制权被反转了,对象的创建和管理交给了一个外部容器(如Spring的ApplicationContext),程序员只需定义对象及其依赖关系,而无需关心具体的创建过程。这种解耦使得代码更加模块化,易于测试和维护...

    小议布赖恩·温的公众理解科学理论研究内省模型.doc

    【布赖恩·温的公众理解科学理论研究内省模型】 布赖恩·温(Brian Wynne)是一位在英国公众理解科学理论领域有着深远影响的学者。他的理论研究主要集中在批判传统的“缺失模型”(deficit model)并提出“内省模型...

    内省所需jar包

    内省(Introspection)是Java编程语言中的一个重要特性,它允许程序在运行时检查对象的属性和方法,以及类的信息。在Java中,内省主要用于动态操作对象,特别是那些在设计时没有完全预知其行为的对象。内省机制使得...

    PHP重构和内省工具

    此外,通过内省,开发者可以在运行时动态检查代码,快速定位问题,减少调试时间。 总结来说,PHP重构和内省工具是提升PHP开发效率、优化代码质量的重要手段。它们通过自动化和智能化的方式,减轻了开发者的工作负担...

    人工智能自主性的行为主义路径与问题——以布鲁克斯的行为主义为例.pdf

    人工智能自主性的行为主义路径与问题——以布鲁克斯的行为主义为例 一、行为主义与人工智能自主性 行为主义在人工智能领域是一种研究方法论,主张将智能行为的产生归因于机器与外部环境的交互作用。行为主义的基本...

    JavaBean及内省文档

    ### JavaBean 及 内省概述 #### 一、JavaBean 概念 JavaBean 是一种遵循特定编码规范的 Java 类,主要用于封装数据并提供访问这些数据的方法。它被广泛应用于 J2EE 开发中,作为组件化的一部分,使得代码更易于...

    ibatis —— docs.zip

    它将内省一个数据库表(或多个表),并将生成可用于访问表的工件。这减轻了设置对象和配置文件以与数据库表进行交互的麻烦。MBG试图对简单CRUD(创建,检索,更新,删除)的大部分数据库操作产生重大影响。您仍将...

    06-内省.xmind

    内省机制

    JAVA的内省机制(introspector)与反射机制(reflection).docx

    "JAVA的内省机制(introspector)与反射机制(reflection)" JAVA 的内省机制(introspector)和反射机制(reflection)是两个重要的概念,在 JAVA 编程中扮演着至关重要的角色。那么,什么是内省机制和反射机制?它们...

    英语演讲——节约主题PPT课件.pptx

    此外,引导学生记录个人消费行为,通过自我监控的方式培养节约习惯,这种内省的方式往往能激发学生更深层次的思考。社会宣传同样不可或缺,通过政府和其他组织的力量,发起节约资源的倡议,提高公众对节约问题的关注...

    心理咨询师考试笔记(注释)(1-6全).doc

    学派的纷争代表人物(识记):构造心理学派——冯特·铁钦钠——研究化学的方法研究心理学——内省的方法行为主义学派——美·华生——环境决定论观点——抛开意识,探索刺激和反应(S-R)关系格式塔心理学派——...

    Java中的内省与反射.doc

    ### Java中的内省与反射详解 #### 一、引言 在深入了解Java语言的过程中,我们会遇到两个重要的概念:反射和内省。这两种技术在实际开发中有着广泛的应用,尤其是在需要进行动态操作或元数据处理的场景下尤为重要...

    Introspected可序列化数组和JSON友好对象的内省

    内省允许开发者检查、验证、修改甚至创建新的数据结构。 ### 可序列化数组 可序列化数组是一种能够转换为字符串或JSON格式的数组,以便在网络间传输或存储。JavaScript中的`JSON.stringify()`方法是将JavaScript...

    Java 内省(Introspector)深入理解

    Java内省(Introspector)是Java语言提供的一种机制,用于在运行时分析Java对象的属性、方法和事件。这个特性对于开发人员来说非常有用,因为它允许程序动态地检查和修改对象的状态,而不必了解对象的具体实现细节。...

    浅谈初中思想品德教学中的启迪与内省

    【标题】: 初中思想品德教学的启迪与内省策略探究 【描述】: 本文探讨了在初中思想品德教学中如何通过启迪和内省促进学生的道德成长,强调了教学内容与学生生活的关联,以及关注学生个性心理特征的重要性。 【标签...

    可爱的小女孩望着大海——水粉画背景幻灯片模板.rar

    小女孩的形象充满了卡通艺术的天真无邪,她远望大海的姿态,既表现出对未知世界的好奇,也流露出一种宁静的内省。这种形象特别适合用于儿童相关的演示,比如幼儿园的介绍、儿童故事的讲述,或者任何需要以温馨、积极...

    Java反射与内省-PPT

    Java反射与内省是Java编程语言中的核心特性,它们为开发者提供了强大的能力,可以在运行时检查和操作类、接口、对象及其属性。本PPT深入探讨了这些概念,旨在帮助开发者充分利用Java平台的灵活性。 首先,Java反射...

    4.9反射内省.txt.xmind

    4.9反射内省.txt.xmind

Global site tag (gtag.js) - Google Analytics