code: public void setNum(Object obj, long val) throws IllegalArgumentException,
  			IllegalAccessException, InvocationTargetException,
  			BeanPropertyException, NoSuchMethodException {
  		switch (getTypeCode()) {
  		case SHORT:
  			if (m_f != null) {
  				m_f.setShort(obj, (short) val);
  				return;
  			}
  			if (m_mSet != null) {
  				m_mSet.invoke(obj, new Object[] { new Short((short) val) });
  				return;
  			}
  			break;
  		case INTEGER:
  			if (m_f != null) {
  				m_f.setInt(obj, (int) val);
  				return;
  			}
  			if (m_mSet != null) {
  				m_mSet.invoke(obj, new Object[] { new Integer((int) val) });
  				return;
  			}
  			break;
  		case LONG:
  			if (m_f != null) {
  				m_f.setLong(obj, val);
  				return;
  			}
  			if (m_mSet != null) {
  				m_mSet.invoke(obj, new Object[] { new Long(val) });
  				return;
  			}
  			break;
  		default:
  			throw new BeanPropertyException("Property is not numeric.");
  		}
  
  		throw new BeanPropertyException("Try to write read-only property.");
  	}
docs: 获取数值型的属性值
  
  @throws IllegalAccessException
  @throws IllegalArgumentException
  @throws InvocationTargetException
  @throws BeanPropertyException