使用Spring HATEOAS ControllerLinkBuilder和Kotlin引发IllegalArgumentException

使用Spring HATEOAS ControllerLinkBuilder和Kotlin引发IllegalArgumentException,spring,kotlin,spring-hateoas,Spring,Kotlin,Spring Hateoas,我正在使用Kotlin制作一个小型HATEOAS spring boot应用程序。我想使用ControllerLinkBuilder从处理HAL响应链接的类自动创建HAL响应链接,如下所示: user.add(linkTo(methodOn(UserController::class.java).findByName(userName)).withSelfRel()) 但这会引发: java.lang.IllegalArgumentException: Cannot subclass fina

我正在使用Kotlin制作一个小型HATEOAS spring boot应用程序。我想使用
ControllerLinkBuilder
从处理HAL响应链接的类自动创建HAL响应链接,如下所示:

user.add(linkTo(methodOn(UserController::class.java).findByName(userName)).withSelfRel())
但这会引发:

java.lang.IllegalArgumentException: Cannot subclass final class UserController
因为默认情况下Kotlin中的所有类都是final。我不热衷于(也不想养成这样的习惯)让我所有的类都
打开
只是为了绕过这个限制

我也不想手动建立我的链接,因为它们可能会改变(而且
ControllerLinkBuilder
对于填充参数等非常方便

目前我想我必须接受我的控制器类必须是开放的。有没有其他方法可以解决这个问题

我不喜欢(也不想养成)让所有课程都开放的习惯

你只需要打开你的控制器。这是你正在使用的框架的一个设计特性,需要子类化。无法解决无法子类化
final
类的问题。JVM正在强制执行规则。因此,你需要打开这些规则


还有一些框架不需要子类化就可以产生类似的功能。

只是出于好奇:还有哪些框架提供类似的功能?