1
package test;
2
3
import java.lang.reflect.Method;
4
import java.lang.reflect.ParameterizedType;
5
import java.lang.reflect.Type;
6
import java.util.List;
7
import java.util.Map;
8
9
public class TempTest {
10
11
public static void main(String[] args) throws Exception {
12
Method[] methods = TempTest.class.getDeclaredMethods();
13
for (Method method : methods) {
14
System.out.println("method:" + method.getName());// 方法名
15
16
// //////////////方法的參數
17
System.out.println(" paramTypeType: ");
18
Type[] paramTypeList = method.getGenericParameterTypes();// 方法的參數列表
19
for (Type paramType : paramTypeList) {
20
System.out.println(" " + paramType);// 參數類型
21
if (paramType instanceof ParameterizedType)/* 如果是泛型類型 */{
22
Type[] types = ((ParameterizedType) paramType)
23
.getActualTypeArguments();// 泛型類型列表
24
System.out.println(" TypeArgument: ");
25
for (Type type : types) {
26
System.out.println(" " + type);
27
}
28
}
29
}
30
31
// //////////////方法的返回值
32
System.out.println(" returnType: ");
33
Type returnType = method.getGenericReturnType();// 返回類型
34
System.out.println(" " + returnType);
35
if (returnType instanceof ParameterizedType)/* 如果是泛型類型 */{
36
Type[] types = ((ParameterizedType) returnType)
37
.getActualTypeArguments();// 泛型類型列表
38
System.out.println(" TypeArgument: ");
39
for (Type type : types) {
40
System.out.println(" " + type);
41
}
42
}
43
44
}
45
46
}
47
48
public static String method1(List list) {
49
return null;
50
}
51
52
private static Map<String, Double> method2(Map<String, Object> map) {
53
return null;
54
}
55
56
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56
