Java -> Преобразование Kotlin с необработанными типами

Я пишу плагин CRaSH , который в Java выглядит

public class AuthPlugin extends CRaSHPlugin<AuthenticationPlugin> implements AuthenticationPlugin<String> { @Override public String getName() { return "auth"; } @Override public Class<String> getCredentialType() { return String.class; } @Override public boolean authenticate(String username, String credential) throws Exception { System.out.println("authenticate " + username + " : " + credential); return false; } @Override public void init() { System.out.println("init"); } @Override public AuthenticationPlugin getImplementation() { return this; } } 

Однако я хочу выразить этот класс в Котлине. И проблема заключается в AuthenticationPlugin который имеет общий параметр . Опускание приводит к сбою компиляции Котлина, поэтому я использовал звездную проекцию, например

 class AuthPlugin : CRaSHPlugin<AuthenticationPlugin<*>>(), AuthenticationPlugin<String> { override fun getImplementation(): AuthenticationPlugin<String> = this override fun getName(): String = "auth" override fun authenticate(username: String?, credential: String?): Boolean { println("authenticate ${username}, ${credential}") return true } override fun getCredentialType(): Class<String> = String::class.java } 

который компилируется отлично, но, к сожалению, CRaSH, похоже, использует собственный способ загрузки плагинов, и я получил исключение во время выполнения

 Caused by: java.lang.UnsupportedOperationException: Type resolution of org.crsh.auth.AuthenticationPlugin<?> not yet implemented at org.crsh.util.Utils.resolveToClass(Utils.java:576) ~[crash.shell-85c8d21173b71a0275b599a3a4444723dd64c6af.jar:?] at org.crsh.util.Utils.resolveToClass(Utils.java:560) ~[crash.shell-85c8d21173b71a0275b599a3a4444723dd64c6af.jar:?] at org.crsh.plugin.CRaSHPlugin.<init>(CRaSHPlugin.java:59) ~[crash.shell-85c8d21173b71a0275b599a3a4444723dd64c6af.jar:?] 

Действительно, вход для resolveToClass() является «Class @ interface org.crsh.auth.AuthenticationPlugin» для версии Java, а для Kotlin – «ParametrizedTypeImpl@org.crsh.auth.AuthenticationPlugin». Я предполагаю, что загрузчик CRaSH не может справиться с этим должным образом. Я могу, конечно, просто использовать Java, но ради того, чтобы придерживаться Kotlin – как я могу сделать этот класс для компиляции точно таким же типом, что и версия Java, и сделать его правильно загруженным с помощью CRaSH?