2016-03-05 128 views
1

我正在使用Kotlin制作一个小型HATEOAS弹簧启动应用程序。我想用ControllerLinkBuilder来自动创建与他们交易,像这样的类我HAL响应链接:使用Spring HATEOAS ControllerLinkBuilder和Kotlin抛出IllegalArgumentException

user.add(linkTo(methodOn(UserController::class.java).findByName(userName)).withSelfRel()) 

但这抛出:

java.lang.IllegalArgumentException: Cannot subclass final class UserController 

因为在科特林所有的类都是最终通过默认。我并不热衷于(并且不想养成这样的习惯),只是为了解决这个限制,让我所有的课程open

我也真的不想手动建立我的链接,他们可能会改变(与ControllerLinkBuilder是用于填充参数等

目前,我想我只是将不得不非常方便接受我的控制器类必须是开放的。有没有解决这个另一种方式?

回答

0

我并不热衷(和不想的习惯来获得)让我所有的类开放

你只需要让你r控制器打开。而且它是你使用的框架的一个设计特征,它需要子类化。没有办法解决无法继承final类的问题。 JVM正在执行该规则。所以你需要让这些开放。

还有其他框架不需要子类化来产生类似的功能。

+0

只是出于好奇:其他框架提供了类似的功能? – thg

相关问题