private Object extractAsRuntime ( Field field , String valueStr ) { if ( field . getType ( ) == Byte . TYPE || field . getType ( ) == Byte . class || field . getType ( ) == Short . TYPE || field . getType ( ) == Short . class || field . getType ( ) == Integer . TYPE || field . getType ( ) == Integer . class || field . getType ( ) == Long . TYPE || field . getType ( ) == Long . class || field . getType ( ) == Float . TYPE || field . getType ( ) == Float . class || field . getType ( ) == Double . TYPE || field . getType ( ) == Double . class ) { return extractAsNumber ( field , valueStr ) ; } else if ( String . class . isAssignableFrom ( field . getType ( ) ) ) { return valueStr ; } throw new IllegalArgumentException ( Utils . format ( "Invalid type for RUNTIME type: {}" , field . getType ( ) ) ) ; }
RUNTIME supports only Numeric types and String at the moment