private void test1() {
Method[] methods = TestObj.class.getMethods();
Method listMethod = null;
Method arrayMethod = null;
for (Method m : methods) {
if (m.getName().equals("ListPara")) {
listMethod = m;
} else if (m.getName().equals("ArrayPara")) {
arrayMethod = m;
}
}
Class<?> arrayParaType = arrayMethod.getParameterTypes()[0];
boolean isArray = arrayParaType.isArray(); //是 Array
/**
* 获取 Array 的元素类型
* */
Class<?> arrayEleType = arrayParaType.getComponentType();
if (MenuInfo.class == arrayEleType) {
System.out.println(arrayEleType.toString());
}
Class<?> listParaType = listMethod.getParameterTypes()[0];
boolean isList = List.class.isAssignableFrom(listParaType); //是 List
/**
* 获取 List 的元素类型
* */
Type listType = listMethod.getGenericParameterTypes()[0];
ParameterizedType parameterizedType = (ParameterizedType) listType;
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
Class<?> listEleType = (Class<?>) actualTypeArguments[0];
if (MenuInfo.class == listEleType) {
System.out.println(listEleType.toString());
}
}
class TestObj {
public void ListPara(List<MenuInfo> menuInfos) {
//
}
public void ArrayPara(MenuInfo[] menuInfos) {
//
}
}
Java 获取方法的参数是List 或 Array的元素类型
u0104654172024-06-09 17:46
相关推荐
それども8 分钟前
@ConditionalOnWebApplication 作用二哈喇子!9 分钟前
基于SSM框架的公交车查询系统的设计与实现二哈喇子!18 分钟前
基于JavaSE的淘宝卖鞋后端管理系统的设计与实现小冷coding20 分钟前
【Java】Dubbo 与 OpenFeign 的核心区别Coder_Boy_24 分钟前
基于SpringAI的在线考试系统-智能考试系统-学习分析模块2401_8948281237 分钟前
从原理到实战:随机森林算法全解析(附 Python 完整代码)B站计算机毕业设计超人38 分钟前
计算机毕业设计Python知识图谱中华古诗词可视化 古诗词情感分析 古诗词智能问答系统 AI大模型自动写诗 大数据毕业设计(源码+LW文档+PPT+讲解)玄同76538 分钟前
Python「焚诀」:吞噬所有语法糖的终极修炼手册johnny23338 分钟前
Python管理工具:包、版本、环境羽翼.玫瑰39 分钟前
关于重装Python失败(本质是未彻底卸载Python)的问题解决方案综述