code: public static <C> UnsafeFieldAccess<C> get(Field f) {
  		
  		Class<?> type = f.getType();
  		
  		if (type.isPrimitive()) {
  			if (java.lang.Boolean.TYPE == type) {
  				return new UnsafeBooleanFieldAccess<C>(f);
  			} else if (java.lang.Byte.TYPE == type) {
  				return new UnsafeByteFieldAccess<C>(f);
  			} else if (java.lang.Character.TYPE == type) {
  				return new UnsafeCharFieldAccess<C>(f);
  			} else if (java.lang.Short.TYPE == type) {
  				return new UnsafeShortFieldAccess<C>(f);
  			} else if (java.lang.Integer.TYPE == type) {
  				return new UnsafeIntFieldAccess<C>(f);
  			} else if (java.lang.Long.TYPE == type) {
  				return new UnsafeLongFieldAccess<C>(f);
  			} else if (java.lang.Float.TYPE == type) {
  				return new UnsafeFloatFieldAccess<C>(f);
  			} else if (java.lang.Double.TYPE == type) {
  				return new UnsafeDoubleFieldAccess<C>(f);
  			}
  		}
  		return new UnsafeFieldAccess<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 containing the field to be accessed
  @return New UnsafeFieldAccess instance