@Test void testGetMissingSetter() { class PersonWithoutSetter { @Getter private final String id = null; } assertThatExceptionOfType(RuntimeException.class) .isThrownBy(() -> of(PersonWithoutSetter.class).field("id")) .withCauseInstanceOf(IntrospectionException.class) .withMessageContaining("Unknown property: id") .satisfies( exception -> assertThat(exception.getCause()).hasMessageContaining("Method not found: setId")); }
public <F> @NonNull FunctionalProperty<T, F> field(final @NonNull String name) { final PropertyDescriptor descriptor = this.getPropertyDescriptor(name); return new FunctionalProperty<>(descriptor); }
FunctionalClass { public <F> @NonNull FunctionalProperty<T, F> field(final @NonNull String name) { final PropertyDescriptor descriptor = this.getPropertyDescriptor(name); return new FunctionalProperty<>(descriptor); } }
FunctionalClass { public <F> @NonNull FunctionalProperty<T, F> field(final @NonNull String name) { final PropertyDescriptor descriptor = this.getPropertyDescriptor(name); return new FunctionalProperty<>(descriptor); }  }
FunctionalClass { public <F> @NonNull FunctionalProperty<T, F> field(final @NonNull String name) { final PropertyDescriptor descriptor = this.getPropertyDescriptor(name); return new FunctionalProperty<>(descriptor); }  FunctionalProperty<T, F> field(final @NonNull String name); Supplier<T> getConstructor(); }
FunctionalClass { public <F> @NonNull FunctionalProperty<T, F> field(final @NonNull String name) { final PropertyDescriptor descriptor = this.getPropertyDescriptor(name); return new FunctionalProperty<>(descriptor); }  FunctionalProperty<T, F> field(final @NonNull String name); Supplier<T> getConstructor();  }