JAVA源码解析(2)-java.beans.FeatureDescriptor、

此文章的java环境:1.8.0_131

本人出于学习阶段,如有不正请指正

由于FeatureDescriptor是基类,所以没有太多和实际相关的用法,比较简单,没有方法需要详细解析 ,其他所有实现了FeatureDescriptor的类或多或少都使用了FeatureDescriptor的方法,这些方法发多数都是一些关于当前类或者方法类型的描述,例如expert代表了专家类型,hidden代表了是否不可见。


API对该类的描述:

FeatureDescriptor 类是 PropertyDescriptor、EventSetDescriptor 和 MethodDescriptor 等的公共基类。
它支持一些可以设置和检索任意的内省描述符的公共信息。此外,它还提供了一种扩展机制,从而任意属性/值对都可以与设计特性相关联。


attributeNames() 
来自API的解释:得与语言环境无关的此特性名称的枚举。

调用的是内部方法getTable()获取所有内部属性的一个HashTable,最后调用keys()方法来获取一个枚举类。

有一点需要注意的是,这里面获取到的属性仅当初始化FeatureDescriptor时会进行add外,其余方法并不会对其属性表进行增删


setDisplayName(String displayName) 
来自API的解释:设88 置此特性的本地化显示名称。


getDisplayName() 
来自API的解释:得此特性的本地化显示名称。

这个方法默认会返回getName的值,只有当displayName的值不为空的时候会返回displayName

而displayName的改变只有在初始化类或者调用setDisplayName时会改变


setName(String name) 
来自API的解释:设置此特性的编程名称。


getName()

来自API的解释:获得此特性的编程名称。


setShortDescription(String text) 
          可以将简短描述性字符串与某一特性相关联。


getShortDescription() 
来自API的解释:得此特性的简短描述。

shortDescription当且仅当调用set方法和调用构造器时其值有变化,此处的返回值为:shortDescription -> displayName -> name


setValue(String attributeName, Object value) 
来自API的解释:某一指定属性与此特性相关联。


getValue(String attributeName) 
来自API的解释:利用此特性检索指定属性。

此处的值依然是来自于属性表(private的hashtable:table)


setExpert(boolean expert) 
来自API的解释: "expert" 标志用于区分打算供高级用户使用的特性和那些打算供普通用户使用的特性。


isExpert() 
来自API的解释:"expert" 标志用于区分那些打算供高级用户使用的特性与那些打算供普通用户使用的特性。

此处的值依然来源于set方法和构造器


setHidden(boolean hidden) 
来自API的解释:"hidden" 标志用于标识只打算供工具使用、不应对人类开放的特性。


isHidden() 
来自API的解释:hidden" 标志用于标识只打算供工具使用、不应对人类开放的特性。


isPreferred() 
来自API的解释:"preferred" 标志用于标识呈现给用户的特别重要的特性。


setPreferred(boolean preferred) 
来自API的解释:"preferred" 标志用于标识呈现给用户的特别重要的特性。


java.beans.ParameterDescriptor目前所有的特性都来自于FeatureDescriptor,除了构造器之外什么都没有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引入一个依赖后,启动springboot报错:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultValidator' defined in class path resource [org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: org.hibernate.validator.engine.ConfigurationImpl.getDefaultParameterNameProvider()Ljavax/validation/ParameterNameProvider; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:893) ~[spring-beans-5.2.7.RELEASE.jar:5.2.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) ~[spring-context-5.2.7.RELEASE.jar:5.2.7.RELEASE]
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值