1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.nuiton.jrst;
23
24 import java.lang.reflect.Field;
25 import java.lang.reflect.Method;
26
27
28
29
30
31
32
33
34 public class ReflectUtil {
35
36 public static Method getMethod(Class<?> klass, String methodName, Class<?>[] paramTypes) {
37 try {
38 Method declaredMethod = klass.getDeclaredMethod(methodName, paramTypes);
39 declaredMethod.setAccessible(true);
40 return declaredMethod;
41 } catch (Exception e) {
42 throw new IllegalStateException("Could not get method [" + methodName + "] from parent class :(... ", e);
43 }
44
45 }
46
47 public static Field getField(Class<?> klass, String fieldName) {
48 try {
49 Field declaredField = klass.getDeclaredField(fieldName);
50 declaredField.setAccessible(true);
51 return declaredField;
52 } catch (Exception e) {
53 throw new IllegalStateException("Could not get field [" + fieldName + "] from parent class :(... ", e);
54 }
55
56 }
57
58 public static <O> O invokeMethod(Method m, Object o, Object... params) {
59 try {
60 O result = (O) m.invoke(o, params);
61 return result;
62 } catch (Exception e) {
63 throw new IllegalStateException("Could not invoke method [" + m.getName() + "] from parent class :(... ", e);
64 }
65
66 }
67 }