社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
public class Test02 {
public void parameterTest(Map<Integer, Dog> map){
}
public Map<Integer,Dog> returnTest(){
return new HashMap<Integer, Dog>();
}
}
@Test //获取方法的参数中的泛型信息
public void test() throws NoSuchMethodException {
Method method = Test02.class.getMethod("parameterTest", Map.class);
//获取方法的参数类型
Type[] genericParameterTypes = method.getGenericParameterTypes();
for (Type genericParameterType : genericParameterTypes) {
System.out.println("type:"+genericParameterType);
//ParameterizedType:表示一种参数化类型,比如Collection<Object>
if(genericParameterType instanceof ParameterizedType){
Type[] actualTypeArguments = ((ParameterizedType) genericParameterType).getActualTypeArguments();
for (Type parameterType : actualTypeArguments) {
System.out.println(parameterType);
}
}
}
}
@Test //获取方法的返回值中的泛型信息
public void test2() throws NoSuchMethodException {
Method method = Test02.class.getMethod("returnTest");
//获取方法的返回值类型
Type genericReturnType = method.getGenericReturnType();
if(genericReturnType instanceof ParameterizedType){
Type[] actualTypeArguments = ((ParameterizedType) genericReturnType).getActualTypeArguments();
for (Type parameterType : actualTypeArguments) {
System.out.println(parameterType);
}
}
}
Java之反射机制六:获取方法的泛型信息 - 秋风飒飒吹 - 博客园
https://www.cnblogs.com/wwjj4811/p/12592443.html
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!