code: public Class<?> getType(ELContext context,
                           Object base,
                           Object property) {
  
          if (context == null) {
              throw new NullPointerException();
          }
  
          if (base == null || property == null){
              return null;
          }
  
          BeanProperty bp = getBeanProperty(context, base, property);
          context.setPropertyResolved(true);
          return bp.getPropertyType();
      }
docs: If the base object is not <code>null</code>, returns the most
  general acceptable type that can be set on this bean property.
  
  <p>If the base is not <code>null</code>, the
  <code>propertyResolved</code> property of the <code>ELContext</code>
  object must be set to <code>true</code> by this resolver, before
  returning. If this property is not <code>true</code> after this
  method is called, the caller should ignore the return value.</p>
  
  <p>The provided property will first be coerced to a <code>String</code>.
  If there is a <code>BeanInfoProperty</code> for this property and
  there were no errors retrieving it, the <code>propertyType</code> of
  the <code>propertyDescriptor</code> is returned. Otherwise, a
  <code>PropertyNotFoundException</code> is thrown.</p>
  
  @param context The context of this evaluation.
  @param base The bean to analyze.
  @param property The name of the property to analyze. Will be coerced to
  a <code>String</code>.
  @return If the <code>propertyResolved</code> property of
  <code>ELContext</code> was set to <code>true</code>, then
  the most general acceptable type; otherwise undefined.
  @throws NullPointerException if context is <code>null</code>
  @throws PropertyNotFoundException if <code>base</code> is not
  <code>null</code> and the specified property does not exist
  or is not readable.
  @throws ELException if an exception was thrown while performing
  the property or variable resolution. The thrown exception
  must be included as the cause property of this exception, if
  available.