code: public static <P> DirectMetaProperty<P> ofImmutable(
              MetaBean metaBean, String propertyName, Class<?> declaringType, Class<P> propertyType) {
          Field field = findField(metaBean, propertyName);
          return new DirectMetaProperty<>(metaBean, propertyName, declaringType, propertyType, PropertyStyle.IMMUTABLE, field);
      }
docs: Factory to create an imutable meta-property avoiding duplicate generics.
  
  @param <P>  the property type
  @param metaBean  the meta-bean, not null
  @param propertyName  the property name, not empty
  @param declaringType  the type declaring the property, not null
  @param propertyType  the property type, not null
  @return the property, not null