TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
- import java.lang.reflect.Method;
- import java.lang.reflect.ParameterizedType;
- import java.lang.reflect.Type;
- import java.util.List;
- import java.util.Map;
- public class TempTest {
- public static void main(String[] args) throws Exception {
- Method[] methods = TempTest.class.getDeclaredMethods();
- for (Method method : methods) {
- System.out.println("method:" + method.getName());// 方法名
- // //////////////方法的参数
- System.out.println(" paramTypeType: ");
- Type[] paramTypeList = method.getGenericParameterTypes();// 方法的参数列表
- for (Type paramType : paramTypeList) {
- System.out.println(" " + paramType);// 参数类型
- if (paramType instanceof ParameterizedType)/**//* 如果是泛型类型 */{
- Type[] types = ((ParameterizedType) paramType)
- .getActualTypeArguments();// 泛型类型列表
- System.out.println(" TypeArgument: ");
- for (Type type : types) {
- System.out.println(" " + type);
- }
- }
- }
- // //////////////方法的返回值
- System.out.println(" returnType: ");
- Type returnType = method.getGenericReturnType();// 返回类型
- System.out.println(" " + returnType);
- if (returnType instanceof ParameterizedType)/**//* 如果是泛型类型 */{
- Type[] types = ((ParameterizedType) returnType)
- .getActualTypeArguments();// 泛型类型列表
- System.out.println(" TypeArgument: ");
- for (Type type : types) {
- System.out.println(" " + type);
- }
- }
- }
- }
- public static String method1(List list) {
- return null;
- }
- private static Map< String, Double> method2(Map< String, Object> map) {
- return null;
- }
- }
复制代码 运行结果:
- C: emp>java TempTest
- method:method1
- paramTypeType:
- interface java.util.List
- returnType:
- class java.lang.String
-
- method:method2
- paramTypeType:
- java.util.Map< java.lang.String, java.lang.Object>
- TypeArgument:
- class java.lang.String
- class java.lang.Object
- returnType:
- java.util.Map< java.lang.String, java.lang.Double>
- TypeArgument:
- class java.lang.String
- class java.lang.Double
-
- method:main
- paramTypeType:
- class [Ljava.lang.String;
- returnType:
- void
- C: emp>
复制代码
源码下载:http://file.javaxxz.com/2014/10/30/235801234.zip |
|