public static Builder builder() {
    return new Builder();
  }
@Test
  public void testInterfaceWrongImplClass() throws Exception {
    DynConstructors.Ctor<MyInterface> ctor =
        DynConstructors.builder(MyInterface.class)
            // TODO this should throw or not compile at all, since the MyUnrelatedClass does not
            // implement MyInterface
            .impl(MyUnrelatedClass.class)
            .buildChecked();
    assertThatThrownBy(ctor::newInstance)
        .isInstanceOf(ClassCastException.class)
        .hasMessage(
            "org.apache.iceberg.common.TestDynConstructors$MyUnrelatedClass cannot be cast to org.apache.iceberg.common.TestDynConstructors$MyInterface");
  }