propertydescriptor是用来干什么的_java读取property文件

propertydescriptor是用来干什么的_java读取property文件PropertyDescriptor中文叫属性描述器,是jiavaJavaBean的内省与BeanUtils库JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(ValueObject),或“VO”。方法比较少。这些信息储存在类的私有变量中,通过set()、get()获得。JavaJDK中提供了一套API用来访问某个属性的getter/setter方

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1.作用域

PropertyDescriptor中文叫属性描述器,是jiava JavaBean的内省与BeanUtils库

JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO”。方法比较少。这些信息储存在类的私有变量中,通过set()、get()获得。

Java JDK中提供了一套API用来访问某个属性的getter/setter方法,这就是内省。

JAVA反射机制中操作或者获取私有属性(必须有get/set方法)的《java JavaBean》类,也就是我们常说的VO类,例如:

public class TestClass{
    private String name;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

2. PropertyDescriptor JDK内省类库:

PropertyDescriptor类:(属性描述器)
  PropertyDescriptor类表示JavaBean类通过存储器导出一个属性。主要方法:
  1. getPropertyType(),获得属性的Class对象;
  2. getReadMethod(),获得用于读取属性值的方法;
  3. getWriteMethod(),获得用于写入属性值的方法;
  4. hashCode(),获取对象的哈希值;
  5. setReadMethod(Method readMethod),设置用于读取属性值的方法;
  6. setWriteMethod(Method writeMethod),设置用于写入属性值的方法。

3. 其他和PropertyDescriptor 相关的类或者工具包

1. Introspector类: 将JavaBean中的属性封装起来进行操作 得到 BeanInfo

2. BeanInfo操作PropertyDescriptor

3. BeanUtils包

  <dependency>
     <groupId>commons-beanutils</groupId>
     <artifactId>commons-beanutils</artifactId>
     <version>1.9.4</version>
  </dependency>

4.使用方法


import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;


/**
 * @author zeng
 * @since 2022/6/21
 */
public class MainApp {
    public static void main(String[] args) throws IntrospectionException {
        final PropertyDescriptor descriptor = new PropertyDescriptor("name",TestClass.class);
        final Class<?> type = descriptor.getPropertyType(); //获取属性的class对象
        System.out.println(type.getTypeName());// java.lang.String
        final Method readMethod = descriptor.getReadMethod();//获得用于读取属性值的方法;
        System.out.println(readMethod.getName());// getName
        final Method witeMethod = descriptor.getWriteMethod();//获得用于写入属性值的方法;
        System.out.println(witeMethod.getName());// setName
        //  设置读写方法就不过多介绍了,太麻烦,如果不会需要使用请@我
    }
    class TestClass{
        private String name;

        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188280.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 入门黑客必看书籍「建议收藏」

    入门黑客必看书籍「建议收藏」昨天推送的是视频,今天给大家推荐基本入门渗透测试的好书,以结合昨天文章一起学习,忘记了的可以回复“学习之路”会自动跳出文章的,好的话不多说,直接上主菜了!第一本当然是我们网络基础的书,这里推荐《计算机网络自顶向下的方法》,该书从应用层一直往下到物理层层层讲解,很适合刚刚入门信安的学习者学习!第二本就是编程类的书了,因为我学的是python,当然假如你以后想做渗透的话,我估计你用的最后也就是python了,所以这里我只推荐python的书籍了,因为其他的我也不了解,哈哈。这里推荐小甲鱼..

    2022年6月5日
    95
  • Angular面试题_angular面试

    Angular面试题_angular面试必看https://www.cnblogs.com/yugege/p/6526215.htmlangularjs是mvc还是mvvm框架?首先阐述下你对mvc和mvvm的理解首先为什么我们会需要MVC?因为随着代码规模越来越大,切分职责是大势所趋,还有为了后期维护方便,修改一块功能不影响其他功能。还有为了复用,因为很多逻辑是一样的。而MVC只是手段,终极目标是模块化和复用。mvvm的优点…

    2022年10月18日
    2
  • 5分钟商学院之个人篇–情感和创新

    1.情感能力情商的5个基础元能力:同理心、自我认知、自我控制、自我激励和人际关系处理1.1同理心从别人的情感出发,站在别人的角度看待问题怎样才能训练同理心?指路玩杀人游戏1.2自我

    2021年12月30日
    44
  • mysql workbench如何导入数据库_sql数据库脚本导入

    mysql workbench如何导入数据库_sql数据库脚本导入首先,打开MySQLworkbench,先新建数据库(我们会把.sql文件导入之这个数据库),新建数据库过程如下:先点击1处,新建数据库,给数据库起个名字,点击appy,就创建成功了。之后点击2处,就可以看到现有的数据库了。这里圈出来的是我新建的数据库,双击选中这个数据库(双击选中很重要,因为选中之后才能将.sql文件导入这个数据库中)。然后点击左上方的第二个图标(图中圈出来的那…

    2022年10月2日
    4
  • 10种不同画法画平行线怎么画_平行线的标准画法

    10种不同画法画平行线怎么画_平行线的标准画法数学活动《平行线的画法》活动目标:1、通过活动探究巩固熟悉平行线的判定方法,能正确地画出已知直线的平行线,并能用平行线的判定方法说明依据。2、采用多种方法画平行线,让学生从不同的角度来寻求解决问题的方案.让学生在动手操作中进一步学会画平行线,培养一定的操作技能。3、通过观察、动手操作、推断、交流等数学活动,发展空间观念,体验知识来源于生活,又服务于生活。活动重点:运用所学的知识熟练的画出平行线。活…

    2022年9月20日
    2
  • fp5138升压电路图_大电流升压芯片

    fp5138升压电路图_大电流升压芯片外置MOS大功率升压IC

    2022年10月6日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号