code: protected boolean isReferenceType(byte type) {
          return type == Const.T_OBJECT || type == Const.T_ARRAY || type == T_NULL || type == T_EXCEPTION;
      }
docs: Determine if the given typecode refers to a reference type. This
  implementation just checks that the type code is T_OBJECT, T_ARRAY,
  T_NULL, or T_EXCEPTION. Subclasses should override this if they have
  defined new object types with different type codes.