/** * Gets the value of the field with the specified name in the specified object. Supports * inheritance. * * @param object The object to get the value from. * @param fieldClass The class of the field. * @param fieldName The name of the field. * @param <T> The class of the field. * @return The value in the field of the object. */ public static <T> T getFieldValue( final Object object, final Class<T> fieldClass, final String fieldName) { Validate.notNull(object, "The object to get the value from can not be null"); Validate.notNull(fieldClass, "The class of the field can not be null"); Validate.notEmpty(fieldName, "The name of the field can not be empty"); final Field field = getField(object, fieldName); return getValue(object, fieldClass, field); }
/** * Set the value in the field with the specified name in the specified object. Supports * inheritance. * * @param object The object to set the value in. * @param fieldName The name of the field. * @param value The value to set in the field. */ public static void setFieldValue( final Object object, final String fieldName, final Object value) { Validate.notNull(object, "The object to set the value in can not be null"); Validate.notEmpty(fieldName, "The name of the field can not be empty"); final Field field = getField(object, fieldName); setValue(object, value, field); }
/** * Creates a mock from the specified class and sets it as the value in the field with the * specified name in the specified object. Supports inheritance. * * @param object The object to set the value in. * @param fieldName The name of the field. * @param classToMock The class to create a mock from, as the value to set in the field. */ public static <T> T setFieldValueWithMock( final Object object, final String fieldName, final Class<T> classToMock) { Validate.notNull(classToMock, "The class to mock can not be null"); final T mock = mock(classToMock); setFieldValue(object, fieldName, mock); return mock; }