mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
add method
This commit is contained in:
parent
cc522903b9
commit
18523dd60f
@ -18,6 +18,7 @@
|
|||||||
* 【poi 】 closeAfterRead参数无效,方法设为过期(issue#1007@Github)
|
* 【poi 】 closeAfterRead参数无效,方法设为过期(issue#1007@Github)
|
||||||
* 【core 】 CollUtil中部分方法返回null变更为返回empty
|
* 【core 】 CollUtil中部分方法返回null变更为返回empty
|
||||||
* 【all 】 添加英文README(pr#153@Gitee)
|
* 【all 】 添加英文README(pr#153@Gitee)
|
||||||
|
* 【extra 】 SpringUtil增加getBean(TypeReference)(pr#1009@Github)
|
||||||
|
|
||||||
### Bug修复#
|
### Bug修复#
|
||||||
* 【core 】 修复原始类型转换时,转换失败没有抛出异常的问题
|
* 【core 】 修复原始类型转换时,转换失败没有抛出异常的问题
|
||||||
|
@ -83,13 +83,14 @@ public class SpringUtil implements ApplicationContextAware {
|
|||||||
* @param reference 类型参考,用于持有转换后的泛型类型
|
* @param reference 类型参考,用于持有转换后的泛型类型
|
||||||
* @param <T> Bean类型
|
* @param <T> Bean类型
|
||||||
* @return 带泛型参数的Bean
|
* @return 带泛型参数的Bean
|
||||||
|
* @since 5.4.0
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public static <T> T getBean(TypeReference<T> reference) {
|
public static <T> T getBean(TypeReference<T> reference) {
|
||||||
ParameterizedType parameterizedType = (ParameterizedType) reference.getType();
|
final ParameterizedType parameterizedType = (ParameterizedType) reference.getType();
|
||||||
Class<T> rawType = (Class<T>) parameterizedType.getRawType();
|
final Class<T> rawType = (Class<T>) parameterizedType.getRawType();
|
||||||
Class<?>[] genericTypes = Arrays.stream(parameterizedType.getActualTypeArguments()).map(type -> (Class<?>) type).toArray(Class[]::new);
|
final Class<?>[] genericTypes = Arrays.stream(parameterizedType.getActualTypeArguments()).map(type -> (Class<?>) type).toArray(Class[]::new);
|
||||||
String[] beanNames = applicationContext.getBeanNamesForType(ResolvableType.forClassWithGenerics(rawType, genericTypes));
|
final String[] beanNames = applicationContext.getBeanNamesForType(ResolvableType.forClassWithGenerics(rawType, genericTypes));
|
||||||
return getBean(beanNames[0], rawType);
|
return getBean(beanNames[0], rawType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,6 +108,7 @@ public class SpringUtil implements ApplicationContextAware {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取指定类型对应的Bean名称,包括子类
|
* 获取指定类型对应的Bean名称,包括子类
|
||||||
|
*
|
||||||
* @param type 类、接口,null表示获取所有bean名称
|
* @param type 类、接口,null表示获取所有bean名称
|
||||||
* @return bean名称
|
* @return bean名称
|
||||||
* @since 5.3.3
|
* @since 5.3.3
|
||||||
|
Loading…
x
Reference in New Issue
Block a user