mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +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();
|
||||
if (ArrayUtil.isNotEmpty(genericInterfaces)) {
|
||||
for (final Type genericInterface : genericInterfaces) {
|
||||
if (genericInterface instanceof ParameterizedType) {
|
||||
result.add((ParameterizedType) genericInterface);
|
||||
final ParameterizedType parameterizedType = toParameterizedType(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