diff --git a/Reflect/src/main/java/eu/mikroskeem/utils/reflect/Reflect.java b/Reflect/src/main/java/eu/mikroskeem/utils/reflect/Reflect.java index 4698867..5d551f5 100644 --- a/Reflect/src/main/java/eu/mikroskeem/utils/reflect/Reflect.java +++ b/Reflect/src/main/java/eu/mikroskeem/utils/reflect/Reflect.java @@ -121,4 +121,43 @@ public class Reflect { field.set(instance, value); } catch (IllegalAccessException e){} } + + /* Simpler reflection methods */ + + /** + * Read field + * + * @param instance Object where to read given field + * @param fieldName Field name + * @return Field contents or null + */ + @Nullable public static Object simpleReadField(@NotNull Object instance, @NotNull String fieldName){ + try { + Field f = instance.getClass().getDeclaredField(fieldName); + if (!f.isAccessible()) { + f.setAccessible(true); + } + return f.get(instance); + } catch (NoSuchFieldException|IllegalAccessException e){ + return null; + } + } + + /** + * Write field + * + * @param instance Object where given field resides + * @param fieldName Field name + * @param value Field content + */ + public static void simpleWriteField(@NotNull Object instance, @NotNull String fieldName, + @Nullable Object value){ + try { + Field f = instance.getClass().getDeclaredField(fieldName); + if (!f.isAccessible()) { + f.setAccessible(true); + } + f.set(instance, value); + } catch (NoSuchFieldException|IllegalAccessException ignored){} + } }