code: @SuppressWarnings("unchecked")
      static <P> LightMetaProperty<P> of(
              MetaBean metaBean,
              final Method getMethod,
              MethodHandles.Lookup lookup,
              final String propertyName,
              int constructorIndex) {
          
          MethodHandle getter;
          try {
              getter = lookup.unreflect(getMethod);
          } catch (IllegalArgumentException | IllegalAccessException ex) {
              throw new UnsupportedOperationException("Property cannot be read: " + propertyName, ex);
          }
          return new LightMetaProperty<>(
                  metaBean, 
                  propertyName, 
                  (Class<P>) getMethod.getReturnType(), 
                  getMethod.getGenericReturnType(), 
                  Arrays.asList(getMethod.getAnnotations()), 
                  getter,
                  null,
                  constructorIndex,
                  PropertyStyle.DERIVED);
      }
docs: Creates an instance from a derived {@code Method}.
  
  @param <P>  the property type
  @param metaBean  the meta bean, not null
  @param getMethod  the get method, not null
  @param constructorIndex  the index of the property
  @return the property, not null