From 6200f857ad6477eca6456d74a6d7044208bfb1e1 Mon Sep 17 00:00:00 2001 From: Alkalus <3060479+draknyte1@users.noreply.github.com> Date: Tue, 14 May 2019 15:58:32 +1000 Subject: + Added new Fireproof Bauble. $ Fixed #479. --- .../core/util/reflect/ReflectionUtils.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/Java/gtPlusPlus/core/util') diff --git a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java index 224d842ba7..2371753fe6 100644 --- a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java +++ b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java @@ -293,6 +293,7 @@ public class ReflectionUtils { return loaded > 0; } + public static boolean setField(final Object object, final String fieldName, final Object fieldValue) { Class clazz = object.getClass(); @@ -312,6 +313,28 @@ public class ReflectionUtils { } } return false; + + + } + + public static boolean setField(final Object object, final Field field, final Object fieldValue) { + Class clazz = object.getClass(); + while (clazz != null) { + try { + final Field field2 = getField(clazz, field.getName()); + if (field2 != null) { + setFieldValue_Internal(object, field, fieldValue); + return true; + } + } catch (final NoSuchFieldException e) { + Logger.REFLECTION("setField("+object.toString()+", "+field.getName()+") failed."); + clazz = clazz.getSuperclass(); + } catch (final Exception e) { + Logger.REFLECTION("setField("+object.toString()+", "+field.getName()+") failed."); + throw new IllegalStateException(e); + } + } + return false; } -- cgit