1 package sharin.util;
2
3 import java.lang.reflect.Field;
4 import java.lang.reflect.InvocationTargetException;
5 import java.lang.reflect.Method;
6
7 public class ReflectUtils {
8
9 public static <T> T newInstance(Class<T> clazz) {
10
11 try {
12 return clazz.newInstance();
13
14 } catch (InstantiationException e) {
15 throw new RuntimeException(e);
16
17 } catch (IllegalAccessException e) {
18 throw new RuntimeException(e);
19 }
20 }
21
22 @SuppressWarnings("unchecked")
23 public static <T> T get(Field field, Object object) {
24
25 try {
26 return (T) field.get(object);
27
28 } catch (IllegalAccessException e) {
29 throw new RuntimeException(e);
30 }
31 }
32
33 public static void set(Field field, Object object, Object value) {
34
35 try {
36 field.set(object, value);
37
38 } catch (IllegalAccessException e) {
39 throw new RuntimeException(e);
40 }
41 }
42
43 @SuppressWarnings("unchecked")
44 public static <T> T invoke(Method method, Object obj, Object... args) {
45
46 try {
47 return (T) method.invoke(obj, args);
48
49 } catch (IllegalAccessException e) {
50 throw new RuntimeException(e);
51
52 } catch (InvocationTargetException e) {
53 throw new RuntimeException(e);
54 }
55 }
56 }