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 menuInfos) { // } public void ArrayPara(MenuInfo[] menuInfos) { // } }