Groovy-获取BeanInfo Props的名称类型和值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Groovy-获取BeanInfo Props的名称类型和值相关的知识,希望对你有一定的参考价值。

Get obj props using java.beans.Introspector.getBeanInfo()
  1. def getBeanInfoProps( aObj = null, aClass = null ) {
  2.  
  3. if ( aClass == null ) {
  4. aClass = aObj?.getClass();
  5. }
  6. assert( [aObj, aClass].count(null) != 2 );
  7.  
  8. def map = [:];
  9.  
  10. def lst = java.beans.Introspector.getBeanInfo( aClass ).propertyDescriptors.collect { it }
  11. lst.eachWithIndex { itr, idx ->
  12. String theName = "${itr?.getReadMethod()?.name}".trim();
  13. if (theName.size() >= 3) {
  14. def startIdx = theName.startsWith('is') ? 2 : 3 ; // is or get
  15. def propNameWrongCase = theName.substring( startIdx )
  16. def propName = java.beans.Introspector.decapitalize(propNameWrongCase);
  17.  
  18. def nestedMap = [:]
  19. map[ propName ] = nestedMap;
  20.  
  21. nestedMap.name = propName;
  22. nestedMap.type = itr.getPropertyType();
  23. nestedMap.value = (aObj == null) ? null : aObj[ propName ] ;
  24. }
  25. }
  26. // println map.values().join(' ')
  27. return map;
  28. }

以上是关于Groovy-获取BeanInfo Props的名称类型和值的主要内容,如果未能解决你的问题,请参考以下文章

从 Groovy 中的 URL 读取(使用重定向)

JDK各版本新增的主要特性

JDK各版本新增的主要特性总结

Jmeter 的 vars 和 props 用法

JDK各个版本比较 JDK5~JDK10

jdk版本哪几个版本比较好用?