538bcd1dc3aa54f1ac3c8ab453bf0ae2c816fb29
[jpf-core.git] / examples / Reflection.java
1 import java.lang.reflect.Method;
2 import java.lang.reflect.Type;
3 import java.lang.reflect.TypeVariable;
4
5 import java.util.List;
6 import java.util.Map;
7 import java.util.ArrayList;
8 import java.util.Arrays;
9
10 public class Reflection {
11
12         class GenericShort<TUVW,ABCD> {
13         }
14
15         class Generic<TUVW,ABCD,KLM,NOP> {
16         
17         }
18
19         class SampleClass<VWXZ> {
20            private String sampleField;
21
22            public Generic<Integer,String,Double,Short> setSampleField(Class<VWXZ> clazz, List<String> listString, Map<Integer,String> mapString,
23                                 Generic<Integer,String,Double,Short> test,
24                                 String sampleField, int one, short two, double three, Object obj) {
25                   this.sampleField = sampleField; 
26                   return test;
27            }
28            
29            
30            /*public String getSampleField() {
31                   return sampleField;
32            }*/
33            
34            /*public void setSampleField(String sampleField) {
35               this.sampleField = sampleField;
36            }
37            
38            public List<String> setSampleField(List<String> listString) {
39                   return listString;
40            }*/
41         }
42
43    public static void main(String[] args) {
44
45       Method[] methods = SampleClass.class.getMethods();
46       //  Method[] methods = Class.class.getMethods();
47         Method method = null;
48         for(Method meth : methods) {
49             if (meth.getName().equals("setSampleField")) {
50                 method = meth;
51             }
52         }
53         Type[] parameters = method.getGenericParameterTypes();
54       //Type[] parameters = methods[0].getGenericParameterTypes();
55       for (int i = 0; i < parameters.length; i++) {
56          System.out.println(parameters[i]);
57       }
58       System.out.println();
59       /*Class[] parameterTypes = methods[0].getParameterTypes();
60       for(Class parameterType: parameterTypes){
61          System.out.println(parameterType.getName());   
62  
63       }
64       System.out.println();*/
65       /*TypeVariable[] typeParameters = Generic.class.getTypeParameters();
66       //TypeVariable[] typeParameters = SampleClass.class.getTypeParameters();
67       for(TypeVariable typeVar: typeParameters){
68          System.out.println(typeVar);   
69  
70       }
71       System.out.println();
72
73       Type[] bounds = typeParameters[0].getBounds();
74       for (Type bound : bounds) {
75           System.out.println(bound);
76       }
77       System.out.println();
78       Type returnType = methods[0].getGenericReturnType();
79       System.out.println(returnType);
80           */
81    }
82 }
83