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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PyCharm创建一个新的项目

    PyCharm创建一个新的项目欢迎使用PyCharm这是第一次使用PyCharm,如果你想学习如何使用PyCharm创建一个新的项目,可以仔细阅读这篇文章,了解一下。打开PyCharm点击创建一个新项目选择保存的目录(建议D盘),刚刚安装的默认选择新建环境,点击创建下载配置解释器Python3.8进行中开始创建以“.py”为后缀写个简单的helloworld!运行一下结果如下可以用一个子目录打包需要写的东西同样的操作这次写个learnPython,看看效果,前后对比还有文件存储

    2022年8月29日
  • java 取系统当前时间_java获取当前系统时间方法

    java 取系统当前时间_java获取当前系统时间方法importjava.text.SimpleDateFormat;importjava.util.Calendar;方法一:SimpleDateFormatsdf=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”);Stringly_time=sdf.format(newjava.util.Date());System.out.println(…

    2022年10月19日
  • PHP TCPDF导出支持中文的pdf

    PHP TCPDF导出支持中文的pdfPHP使用TCPDF导出支持中文的pdf一、下载https://github.com/tecnickcom/tcpdf下载TCPDF压缩包二、使用方法 require_once(‘./TCPDF/tcpdf.php’); $pdf=new\TCPDF(); $pdf->AddPage(); $html=”<p>helloworld你好世界</p>”; $pdf->WriteHtml(20,$html); //四种模式I输出

    2022年9月7日
  • qt qtreewidgetitem_qtwidgets

    qt qtreewidgetitem_qtwidgetsQTreeWidget在添加了数据之后点击扩展箭头展开和收缩的时候会显得卡顿,这个是qt内核的一个bug,正常情况下应该是立即响应的,既然是qt的bug,就只能换种方式实现TreeWidget来解决这个bug,具体办法大致可以有一下几种,具体看需求来决定用哪一种方法更好:如果需求要求实现的TreeWidget不要求是完全的TreeWidget,扩展的层次是有限制的,就是只有2层,3层或者…

    2022年10月1日
  • MJKDZ PS2手柄控制OskarBot小车(二):硬件连接与通信时序

    MJKDZ PS2手柄控制OskarBot小车(二):硬件连接与通信时序MJKDZPS2手柄控制OskarBot小车(二):硬件连接与通信时序【目录】    -1、PS2硬件连接        -1.1硬件连接原理图        -1.2硬件接口关系对比    -2、通信协议        -2.1PS2通信硬件接口与信号        -2.2PS2通信时序        -2.3PS2手柄各数据的意义…

    2022年6月10日
  • eclipse使用maven教程

    eclipse使用maven教程eclipse使用maven教程什么是mavenmaven下载与安装与配置1下载2安装3配置环境变量在eclipse中配置1m2eclipse安装2配置eclipse3创建一个maven项目1项目的结构2Eclipse中maven常用的命3使用maven命令0.什么是maven参考https://www.cnblogs.com/whgk/p

    2022年4月6日

发表回复

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

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