Implementando una interfaz de kotlin en java

Entonces, después de esta pregunta donde básicamente exploto la reflexión para pasar references primitivas para modificar la primitiva misma, como:

_begin("Another Window", ::showAnotherWindow)

Estaba buscando algo para hacer algo similar posible también desde Java, donde en este momento estoy usando matrices primitivas de Plains:

 private boolean[] showAnotherWindow = {false}; imgui.begin("Another Window", showAnotherWindow); 

@hotkey me sugirió la posibilidad de crear una class que implementa la interfaz KMutableProperty0 y que automáticamente obtiene y establece la variable correspondiente

Ejemplo:

 KMutableProperty0<Boolean> prop = PropUtils.javaProp(this, t -> t.showAnotherWindow, (t, r) -> { t.showAnotherWindow = r; }); _begin("Another Window", prop); 

Entonces, quería probarlo e implementar lo siguiente en Java.

Getter :

 @FunctionalInterface public interface Getter<T> { T get(); } 

Setter :

 @FunctionalInterface public interface Setter<T> { void set(T type); } 

Y luego la class en sí (acabo de escribir el constructor, todos los methods son los solicitados por la interfaz e implementados automáticamente por el IDE):

 public class JavaProp <T> implements KMutableProperty0<T> { private imgui.Getter<T> getter; private imgui.Setter<T> setter; public JavaProp(imgui.Getter<T> getter, imgui.Setter<T> setter) { this.getter = getter; this.setter = setter; } @Override public void set(T t) { setter.set(t); } @NotNull @Override public Setter<T> getSetter() { return null; } @Override public T get() { return getter.get(); } @Nullable @Override public Object getDelegate() { return null; } @NotNull @Override public Getter<T> getGetter() { return null; } @Override public T invoke() { return null; } @Override public boolean isLateinit() { return false; } @Override public boolean isConst() { return false; } @NotNull @Override public String getName() { return null; } @NotNull @Override public List<KParameter> getParameters() { return null; } @NotNull @Override public KType getReturnType() { return null; } @NotNull @Override public List<KTypeParameter> getTypeParameters() { return null; } @Override public T call(Object... objects) { return null; } @Override public T callBy(Map<KParameter, ?> map) { return null; } @Nullable @Override public KVisibility getVisibility() { return null; } @Override public boolean isFinal() { return false; } @Override public boolean isOpen() { return false; } @Override public boolean isAbstract() { return false; } @NotNull @Override public List<Annotation> getAnnotations() { return null; } } 

Pero cada vez que trato de ejecutar eso, obtengo lo siguiente:

Error: (45, 12) java: la reference a Getter es ambigua

ambos interfaz kotlin.reflect.KProperty0.Getter en kotlin.reflect.KProperty0 e interfaz kotlin.reflect.KProperty.Getter en kotlin.reflect.KProperty coinciden

La function problemática es esta:

  @NotNull @Override public Getter<T> getGetter() { return null; } 

Y el file relevante es kotlin.reflect.KProperty.tk , puedes encontrarlo aquí

¿Alguna idea de cómo podría resolverlo?