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
相关推荐
程序员贺加贝几秒前
列表导出不够用-SaaS-ERP-单据详情导出的-Provider-模板与文档型-Excel-设计SimonKing2 分钟前
写文档的最佳搭档:Typora+PicList+SM.MS王志来1379447300812 分钟前
工控服务器机箱选型决策要素解析:匀天以“快全准省”构建价值坐标侧耳倾听11113 分钟前
disruptor 从入门到使用龙智DevSecOps解决方案17 分钟前
WildFly vs JBoss vs GlassFish:2026年Java应用服务器选型对比与Perforce JRebel加速实践孫治AllenSun25 分钟前
【LangChain4J-04】Tool 工具的使用南城以南溫暖如初14727 分钟前
树洞交友系统架构设计与匿名聊天实战指南阿图灵27 分钟前
OpenCV 实用技巧三连:视频转图片、图片转视频、Pillow 与 OpenCV 互转GlueNa2SiO329 分钟前
05-Flask表单处理与文件上传一晌小贪欢32 分钟前
Python办公16:PDF 强力缝合——将几十个 PDF 合并为单个文档并添加页码