mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
修复ClassUtil.getTypeArgument() 获取泛型存在null问题
This commit is contained in:
parent
b5cd26822e
commit
cc6234bd27
@ -343,8 +343,9 @@ public class TypeUtil {
|
|||||||
final Type[] genericInterfaces = clazz.getGenericInterfaces();
|
final Type[] genericInterfaces = clazz.getGenericInterfaces();
|
||||||
if (ArrayUtil.isNotEmpty(genericInterfaces)) {
|
if (ArrayUtil.isNotEmpty(genericInterfaces)) {
|
||||||
for (final Type genericInterface : genericInterfaces) {
|
for (final Type genericInterface : genericInterfaces) {
|
||||||
if (genericInterface instanceof ParameterizedType) {
|
final ParameterizedType parameterizedType = toParameterizedType(genericInterface);
|
||||||
result.add((ParameterizedType) genericInterface);
|
if(null != parameterizedType){
|
||||||
|
result.add(parameterizedType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
package org.dromara.hutool.core.reflect;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
public class Issue3516Test {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getTypeArgumentTest() {
|
||||||
|
final Type typeArgument = TypeUtil.getTypeArgument(Demo.class, 0);
|
||||||
|
Assertions.assertEquals(B.class, typeArgument);
|
||||||
|
}
|
||||||
|
|
||||||
|
static class Demo implements A2B{
|
||||||
|
@Override
|
||||||
|
public A apply(final B b) {
|
||||||
|
return new A();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class A {
|
||||||
|
private String name;
|
||||||
|
}
|
||||||
|
|
||||||
|
static class B {
|
||||||
|
private String name;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface A2B extends Function<B, A> {
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user