code: ObjectStreamField[] fields() {
          if (fields == null) {
              Class<?> forCl = forClass();
              if (forCl != null && isSerializable() && !forCl.isArray()) {
                  buildFieldDescriptors(forCl.getDeclaredFields());
              } else {
                  // Externalizables or arrays do not need FieldDesc info
                  setFields(NO_FIELDS);
              }
          }
          return fields;
      }
docs: Returns the collection of field descriptors for the fields of the
  corresponding class
  
  @return the receiver's collection of declared fields for the class it
  represents