code: public static <C> PortableFieldAccess<C> get(Field f) {
  		
  		Class<?> type = (Class<?>) f.getType();
  		
  		if (type.isPrimitive()) {
  			if (java.lang.Boolean.TYPE == type) {
  				return (PortableFieldAccess<C>) new PortableBooleanFieldAccess<C>(f);
  			} else if (java.lang.Byte.TYPE == type) {
  				return (PortableFieldAccess<C>) new PortableByteFieldAccess<C>(f);
  			} else if (java.lang.Character.TYPE == type) {
  				return (PortableFieldAccess<C>) new PortableCharFieldAccess<C>(f);
  			} else if (java.lang.Short.TYPE == type) {
  				return (PortableFieldAccess<C>) new PortableShortFieldAccess<C>(f);
  			} else if (java.lang.Integer.TYPE == type) {
  				return (PortableFieldAccess<C>) new PortableIntFieldAccess<C>(f);
  			} else if (java.lang.Long.TYPE == type) {
  				return (PortableFieldAccess<C>) new PortableLongFieldAccess<C>(f);
  			} else if (java.lang.Float.TYPE == type) {
  				return (PortableFieldAccess<C>) new PortableFloatFieldAccess<C>(f);
  			} else if (java.lang.Double.TYPE == type) {
  				return (PortableFieldAccess<C>) new PortableDoubleFieldAccess<C>(f);
  			}
  		}
  		return new PortableFieldAccess<C>(f);
  	}
docs: Get a new instance that can access the given Field
  @param f Field to be accessed
  @param <C> The type of class being accessed
  @return New PortableFieldAccess instance