First commit to PLRG Git repo.
[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 {
20            private String sampleField;
21
22            public Generic<Integer,String,Double,Short> setSampleField(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       Type[] parameters = methods[0].getGenericParameterTypes();
47       //Type[] parameters = methods[0].getGenericParameterTypes();
48       for (int i = 0; i < parameters.length; i++) {
49          System.out.println(parameters[i]);
50       }
51       System.out.println();
52       /*Class[] parameterTypes = methods[0].getParameterTypes();
53       for(Class parameterType: parameterTypes){
54          System.out.println(parameterType.getName());   
55  
56       }
57       System.out.println();*/
58       //TypeVariable[] typeParameters = Generic.class.getTypeParameters();
59       TypeVariable[] typeParameters = SampleClass.class.getTypeParameters();
60       for(TypeVariable typeVar: typeParameters){
61          System.out.println(typeVar);   
62  
63       }
64       System.out.println();
65       
66       Type returnType = methods[0].getGenericReturnType();
67       System.out.println(returnType);
68           
69    }
70 }
71