1 import java.lang.reflect.Method;
2 import java.lang.reflect.Type;
3 import java.lang.reflect.TypeVariable;
4 import java.io.Serializable;
8 import java.util.ArrayList;
9 import java.util.Arrays;
11 public class Reflection {
13 interface GenericSuperShort<XYZ> {
17 class GenericShort<TUVW,ABCD> {
20 class Generic<TUVW,ABCD,KLM,NOP,XYZ> extends GenericShort<TUVW,ABCD> implements GenericSuperShort<XYZ>, Serializable {
24 class SampleClass<VWXZ> {
25 private String sampleField;
27 public Class<?> setSampleField(Class<?> clazz,
28 Class<? extends List> list, Class<? super Map> map,
29 List<String> listString, Map<Integer,String> mapString,
30 Generic<Integer,String,Double,Short,Float> test,
31 String sampleField, int one, short two, double three, Object obj) {
33 this.sampleField = sampleField;
38 /*public String getSampleField() {
42 /*public void setSampleField(String sampleField) {
43 this.sampleField = sampleField;
46 public List<String> setSampleField(List<String> listString) {
51 public static void main(String[] args) {
53 /*Method[] methods = SampleClass.class.getMethods();
54 // Method[] methods = Class.class.getMethods();
56 for(Method meth : methods) {
57 if (meth.getName().equals("setSampleField")) {
61 Type[] parameters = method.getGenericParameterTypes();
62 //Type[] parameters = methods[0].getGenericParameterTypes();
63 for (int i = 0; i < parameters.length; i++) {
64 System.out.println(parameters[i]);
67 Type returnType = method.getGenericReturnType();
68 System.out.println(returnType);*/
70 /*Type superCls = Generic.class.getGenericSuperclass();
71 //Type superCls = String.class.getGenericSuperclass();
72 System.out.println(superCls);
74 Type[] interfaces = Generic.class.getGenericInterfaces();
75 for (int i = 0; i < interfaces.length; i++) {
76 System.out.println(interfaces[i]);
80 Method[] methods = Class.class.getMethods();
82 for(Method mth : methods) {
83 if (mth.getName().equals("getConstructor")) {
84 //if (mth.getName().equals("isAssignableFrom")) {
85 //if (mth.getName().equals("getSuperclass")) {
89 Type[] parameters = method.getGenericParameterTypes();
90 //Type[] parameters = methods[0].getGenericParameterTypes();
91 for (int i = 0; i < parameters.length; i++) {
92 System.out.println(parameters[i]);
95 Type returnType = method.getGenericReturnType();
96 System.out.println(returnType);
99 /*Class[] parameterTypes = methods[0].getParameterTypes();
100 for(Class parameterType: parameterTypes){
101 System.out.println(parameterType.getName());
104 System.out.println();*/
105 /*TypeVariable[] typeParameters = Generic.class.getTypeParameters();
106 //TypeVariable[] typeParameters = SampleClass.class.getTypeParameters();
107 for(TypeVariable typeVar: typeParameters){
108 System.out.println(typeVar);
111 System.out.println();
113 Type[] bounds = typeParameters[0].getBounds();
114 for (Type bound : bounds) {
115 System.out.println(bound);
117 System.out.println();*/