private void dynamicallyInitIfNeeded ( Object value ) { /* Check to see if this class was already initialized, * if not, initialize it based on the type of the value. */ if ( ! isInitialized ( ) ) { if ( value instanceof Integer ) { init ( new Integer ( min . intValue ( ) ) , new Integer ( max . intValue ( ) ) ) ; } else if ( value instanceof Byte ) { init ( new Byte ( min . byteValue ( ) ) , new Byte ( max . byteValue ( ) ) ) ; } else if ( value instanceof Short ) { init ( new Short ( min . shortValue ( ) ) , new Short ( max . shortValue ( ) ) ) ; } else { init ( min , max ) ; } } }
If the type was not initialized we can still figure it out at runtime .