add null check

This commit is contained in:
Looly 2021-09-01 22:14:15 +08:00
parent 30f541f849
commit 303c77a08d
3 changed files with 37 additions and 23 deletions

View File

@ -8,6 +8,7 @@
### 🐣新特性
* 【system 】 OshiUtil增加getCurrentProcess方法
* 【extra 】 SpringUtil增加getApplicationName、publishEvent方法issue#I485NZ@Gitee
* 【core 】 BeanUtil.getProperty增加判空issue#I488HA@Gitee
### 🐞Bug修复

View File

@ -329,12 +329,15 @@ public class BeanUtil {
* @param <T> 属性值类型
* @param bean Bean对象支持MapListCollectionArray
* @param expression 表达式例如person.friend[5].name
* @return Bean属性值
* @return Bean属性值bean为{@code null}或者express为空返回{@code null}
* @see BeanPath#get(Object)
* @since 3.0.7
*/
@SuppressWarnings("unchecked")
public static <T> T getProperty(Object bean, String expression) {
if (null == bean || StrUtil.isBlank(expression)) {
return null;
}
return (T) BeanPath.create(expression).get(bean);
}
@ -764,6 +767,9 @@ public class BeanUtil {
* @since 4.0.6
*/
public static boolean isMatchName(Object bean, String beanClassName, boolean isSimple) {
if (null == bean || StrUtil.isBlank(beanClassName)) {
return false;
}
return ClassUtil.getClassName(bean, isSimple).equals(isSimple ? StrUtil.upperFirst(beanClassName) : beanClassName);
}

View File

@ -257,6 +257,13 @@ public class BeanUtilTest {
Assert.assertEquals("sub名字", subName);
}
@Test
@SuppressWarnings("ConstantConditions")
public void getNullPropertyTest() {
final Object property = BeanUtil.getProperty(null, "name");
Assert.assertNull(property);
}
@Test
public void getPropertyDescriptorsTest() {
HashSet<Object> set = CollUtil.newHashSet();