### Question:
UtilReflection { public static <T> T getField(Object object, String name) { Check.notNull(object); Check.notNull(name); try { final Class<?> clazz = getClass(object); final Field field = getDeclaredFieldSuper(clazz, name); setAccessible(field, true); @SuppressWarnings("unchecked") final T value = (T) field.get(object); return value; } catch (final NoSuchFieldException | IllegalAccessException exception) { throw new LionEngineException(exception, ERROR_FIELD + name); } } private  UtilReflection(); static T create(Class<T> type, Class<?>[] paramTypes, Object... params); @SuppressWarnings("unchecked") static T createReduce(Class<T> type, Object... params); static Class<?>[] getParamTypes(Object... arguments); @SuppressWarnings("unchecked") static Constructor<T> getCompatibleConstructor(Class<T> type, Class<?>... paramTypes); @SuppressWarnings("unchecked") static Constructor<T> getCompatibleConstructorParent(Class<T> type, Class<?>[] paramTypes); static T getMethod(Object object, String name, Object... params); static T getField(Object object, String name); static void setAccessible(AccessibleObject object, boolean accessible); static Collection<Class<?>> getInterfaces(Class<?> object, Class<?> base);  }### Answer:
@Test void testGetField() { assertNotNull(UtilReflection.getField(new Config(new Resolution(320, 240, 32), 16, false), "output")); }
@Test void testGetFieldAccessible() { assertNotNull(UtilReflection.getField(LionEngineException.class, "ERROR_PRIVATE_CONSTRUCTOR")); }
@Test void testGetFieldNotAccessible() { assertNotNull(UtilReflection.getField(Verbose.class, "LOGGER")); }
@Test void testGetFieldSuperClass() { final String accessible = UtilReflection.getField(FieldTest2.class, "test"); assertNotNull(accessible); }
@Test void testGetFieldUnknown() { assertThrows(() -> UtilReflection.getField(new Object(), "0"), UtilReflection.ERROR_FIELD + "0"); }