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 }