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的元素类型
发表评论 取消回复