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)
|
||||
* 【core 】 CollUtil中部分方法返回null变更为返回empty
|
||||
* 【all 】 添加英文README(pr#153@Gitee)
|
||||
* 【extra 】 SpringUtil增加getBean(TypeReference)(pr#1009@Github)
|
||||
|
||||
### Bug修复#
|
||||
* 【core 】 修复原始类型转换时,转换失败没有抛出异常的问题
|
||||
|
@ -83,13 +83,14 @@ public class SpringUtil implements ApplicationContextAware {
|
||||
* @param reference 类型参考,用于持有转换后的泛型类型
|
||||
* @param <T> Bean类型
|
||||
* @return 带泛型参数的Bean
|
||||
* @since 5.4.0
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> T getBean(TypeReference<T> reference) {
|
||||
ParameterizedType parameterizedType = (ParameterizedType) reference.getType();
|
||||
Class<T> rawType = (Class<T>) parameterizedType.getRawType();
|
||||
Class<?>[] genericTypes = Arrays.stream(parameterizedType.getActualTypeArguments()).map(type -> (Class<?>) type).toArray(Class[]::new);
|
||||
String[] beanNames = applicationContext.getBeanNamesForType(ResolvableType.forClassWithGenerics(rawType, genericTypes));
|
||||
final ParameterizedType parameterizedType = (ParameterizedType) reference.getType();
|
||||
final Class<T> rawType = (Class<T>) parameterizedType.getRawType();
|
||||
final Class<?>[] genericTypes = Arrays.stream(parameterizedType.getActualTypeArguments()).map(type -> (Class<?>) type).toArray(Class[]::new);
|
||||
final String[] beanNames = applicationContext.getBeanNamesForType(ResolvableType.forClassWithGenerics(rawType, genericTypes));
|
||||
return getBean(beanNames[0], rawType);
|
||||
}
|
||||
|
||||
@ -107,6 +108,7 @@ public class SpringUtil implements ApplicationContextAware {
|
||||
|
||||
/**
|
||||
* 获取指定类型对应的Bean名称,包括子类
|
||||
*
|
||||
* @param type 类、接口,null表示获取所有bean名称
|
||||
* @return bean名称
|
||||
* @since 5.3.3
|
||||
|
Loading…
x
Reference in New Issue
Block a user