mirror of
https://gitee.com/dromara/hutool.git
synced 2025-07-15 23:13:33 +08:00
change getPropery return to T
This commit is contained in:
parent
554ab6b20a
commit
e168de8622
@ -10,6 +10,7 @@
|
|||||||
* 【core】 Convert.toList支持[1,2]字符串(issue#I149XN@Gitee)
|
* 【core】 Convert.toList支持[1,2]字符串(issue#I149XN@Gitee)
|
||||||
* 【core】 修正DateUtil.thisWeekOfMonth注释错误(issue#614@Github)
|
* 【core】 修正DateUtil.thisWeekOfMonth注释错误(issue#614@Github)
|
||||||
* 【core】 DateUtil增加toLocalDate等方法,DateTime更好的支持时区
|
* 【core】 DateUtil增加toLocalDate等方法,DateTime更好的支持时区
|
||||||
|
* 【core】 BeanUtil.getProperty返回泛型对象(issue#I14PIW@Gitee)
|
||||||
|
|
||||||
### Bug修复
|
### Bug修复
|
||||||
* 【db】 修复MetaUtil.getTableMeta()方法未释放ResultSet的bug(issue#I148GH@Gitee)
|
* 【db】 修复MetaUtil.getTableMeta()方法未释放ResultSet的bug(issue#I148GH@Gitee)
|
||||||
|
@ -175,12 +175,9 @@ public class BeanUtil {
|
|||||||
} catch (IntrospectionException e) {
|
} catch (IntrospectionException e) {
|
||||||
throw new BeanException(e);
|
throw new BeanException(e);
|
||||||
}
|
}
|
||||||
return ArrayUtil.filter(beanInfo.getPropertyDescriptors(), new Filter<PropertyDescriptor>() {
|
return ArrayUtil.filter(beanInfo.getPropertyDescriptors(), (Filter<PropertyDescriptor>) t -> {
|
||||||
@Override
|
// 过滤掉getClass方法
|
||||||
public boolean accept(PropertyDescriptor t) {
|
return false == "class".equals(t.getName());
|
||||||
// 过滤掉getClass方法
|
|
||||||
return false == "class".equals(t.getName());
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,8 +208,8 @@ public class BeanUtil {
|
|||||||
*/
|
*/
|
||||||
private static Map<String, PropertyDescriptor> internalGetPropertyDescriptorMap(Class<?> clazz, boolean ignoreCase) throws BeanException {
|
private static Map<String, PropertyDescriptor> internalGetPropertyDescriptorMap(Class<?> clazz, boolean ignoreCase) throws BeanException {
|
||||||
final PropertyDescriptor[] propertyDescriptors = getPropertyDescriptors(clazz);
|
final PropertyDescriptor[] propertyDescriptors = getPropertyDescriptors(clazz);
|
||||||
final Map<String, PropertyDescriptor> map = ignoreCase ? new CaseInsensitiveMap<String, PropertyDescriptor>(propertyDescriptors.length, 1)
|
final Map<String, PropertyDescriptor> map = ignoreCase ? new CaseInsensitiveMap<>(propertyDescriptors.length, 1)
|
||||||
: new HashMap<String, PropertyDescriptor>((int) (propertyDescriptors.length), 1);
|
: new HashMap<>((int) (propertyDescriptors.length), 1);
|
||||||
|
|
||||||
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
|
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
|
||||||
map.put(propertyDescriptor.getName(), propertyDescriptor);
|
map.put(propertyDescriptor.getName(), propertyDescriptor);
|
||||||
@ -295,14 +292,16 @@ public class BeanUtil {
|
|||||||
/**
|
/**
|
||||||
* 解析Bean中的属性值
|
* 解析Bean中的属性值
|
||||||
*
|
*
|
||||||
|
* @param <T> 属性值类型
|
||||||
* @param bean Bean对象,支持Map、List、Collection、Array
|
* @param bean Bean对象,支持Map、List、Collection、Array
|
||||||
* @param expression 表达式,例如:person.friend[5].name
|
* @param expression 表达式,例如:person.friend[5].name
|
||||||
* @return Bean属性值
|
* @return Bean属性值
|
||||||
* @see BeanPath#get(Object)
|
* @see BeanPath#get(Object)
|
||||||
* @since 3.0.7
|
* @since 3.0.7
|
||||||
*/
|
*/
|
||||||
public static Object getProperty(Object bean, String expression) {
|
@SuppressWarnings("unchecked")
|
||||||
return BeanPath.create(expression).get(bean);
|
public static <T> T getProperty(Object bean, String expression) {
|
||||||
|
return (T) BeanPath.create(expression).get(bean);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -504,7 +503,7 @@ public class BeanUtil {
|
|||||||
* @return Map
|
* @return Map
|
||||||
*/
|
*/
|
||||||
public static Map<String, Object> beanToMap(Object bean, boolean isToUnderlineCase, boolean ignoreNullValue) {
|
public static Map<String, Object> beanToMap(Object bean, boolean isToUnderlineCase, boolean ignoreNullValue) {
|
||||||
return beanToMap(bean, new LinkedHashMap<String, Object>(), isToUnderlineCase, ignoreNullValue);
|
return beanToMap(bean, new LinkedHashMap<>(), isToUnderlineCase, ignoreNullValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -522,13 +521,7 @@ public class BeanUtil {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return beanToMap(bean, targetMap, ignoreNullValue, new Editor<String>() {
|
return beanToMap(bean, targetMap, ignoreNullValue, key -> isToUnderlineCase ? StrUtil.toUnderlineCase(key) : key);
|
||||||
|
|
||||||
@Override
|
|
||||||
public String edit(String key) {
|
|
||||||
return isToUnderlineCase ? StrUtil.toUnderlineCase(key) : key;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user