code: public Map<String, BeanSpec> fields() {
          if (null != fields) {
              return fields;
          }
          synchronized (this) {
              if (null == fields) {
                  Map<String, BeanSpec> map = new HashMap<>();
                  for (BeanSpec spec : fields($.F.<Field>yes())) {
                      map.put(spec.name, spec);
                      // need to treat the alias of field name
                      if (spec.originalName != spec.name) {
                          map.put(spec.originalName, spec);
                      }
                  }
                  fields = Collections.unmodifiableMap(map);
              }
          }
          return fields;
      }
docs: Returns a list of `BeanSpec` for all fields including super class fields.
  
  @return the fields spec list