使用Spring HATEOAS ControllerLinkBuilder和Kotlin抛出IllegalArgumentException
我正在使用Kotlin制作一个小型的HATEOAS春季启动应用程序。 我想使用ControllerLinkBuilder
从处理它们的类自动创建我的HAL响应链接,如下所示:
user.add(linkTo(methodOn(UserController::class.java).findByName(userName)).withSelfRel())
但是这抛出:
java.lang.IllegalArgumentException: Cannot subclass final class UserController
因为Kotlin中的所有类都默认是最终的。 我不喜欢(而且也不想养成这样的习惯)为了克服这个限制而open
我所有的课程。
我也不是真的想手动建立我的链接,因为他们可能会改变(和ControllerLinkBuilder
是非常方便的填充参数等
目前我想我只是要接受我的控制器类必须打开。 有没有其他的方法呢?
我并不热衷(也不想养成这样的习惯)让所有课程都开放
你只需要打开你的控制器。 而且这是你所使用的框架的一个设计特征,那就是子类化是必需的。 没有办法解决无法继承final
课程的问题。 JVM正在执行该规则。 所以你需要打开这些。
还有其他的框架不需要子类来产生类似的功能。