我正在尝试使用自定义注释验证RequestBody。
使用下面的配置,我的验证工作正常:
data class PlayerRegistration(
@field: Email
val email: String,
@field: Pattern(regexp = NICK_REGEX)
@field: Size(min = 5, max = 15)
val nick: String,
@field: Pattern(regexp = PASSWORD_REGEX)
@field: Size(min = 8, max = 20)
val password: String,
val birthDate: LocalDate
)
但是当我试图这样总结注释时:
data class PlayerRegistration(
@field: Email
val email: String,
@field: ValidNick
val nick: String,
@field: ValidPassword
val password: String,
val birthDate: LocalDate
)
@Pattern(regexp = NICK_REGEX)
@Size(min = 5, max = 15)
@Target(AnnotationTarget.FIELD)
private annotation class ValidNick
@Pattern(regexp = EMAIL_REGEX)
@Size(min = 8, max = 20)
@Target(AnnotationTarget.FIELD)
private annotation class ValidPassword
它不起作用。我做错了什么?
简而言之:您的方法创建了具有注释的注释——两个级别的嵌套。这不是对注释进行分组的机制。
尝试像注释处理器一样思考。在第一个代码片段中,处理器看到一个字段nick
并认为“好的,我知道如何将Pattern
和Size
应用于字段”。
在第二段代码中,对于字段< code>nick,它看到< code>ValidNick并认为“我不知道这种类型的注释,也不知道如何将其视为字段约束”。处理器必须知道,它必须转到这个注释的注释,我相信这是不支持开箱即用的。
如果我是你,我不会推动这样的代码结构。IMO会降低可读性,因为为了了解nick的约束,您必须转到代码的其他部分。从理论上讲,它是可重用的,但问题是:你会有多少次重用?
如果你真的想实现类似的东西,而不是注释,我会尝试委托属性。它们允许您拦截二传器,并将此类拦截html" target="_blank">逻辑保留为可重用的类
我试图转换一些使用Jackson的@JsonSubTypes注释来管理多态性的Java代码。 以下是可用的Java代码: 以下是我认为等效的Kotlin代码: 但我在三行“JsonSubTypes.Type”中的每一行都会出现以下错误: 知道吗?
我试图用OkHttp和Cucumber在静态编程语言中设置一个Spring启动项目,并且在运行Cucumber任务时遇到以下错误。如何修复? 还有build gradle kts片段 我看到了这个错误https://github.com/square/okio/issues/647看起来可能是它,并修复了这个build.gradle,我如何将其翻译为kotlinbuild.gradle.kts?
是否可以在中的class中添加一个新的静态方法?通常,由于Kotlin Extensions,这样的事情在Kotlin中是可能的。 我已经尝试在一个名为的文件中执行以下操作: 但<code>数学。无法解析同伴。。。
如何将注释实例传递给函数? 我想调用java方法
正如标题所说,我正在尝试将Java和Kotlin混合在一个项目中。这里有一个很好的例子。混合java kotlin hello world。除了kotlin在src/main/Java/somepackage/SomeClass中找不到我的任何Java类之外,所有的东西都正常工作。Java语言 这是什么原因? 我的身材。gradle看起来像这样 而不是开始尝试在更大的项目上实现这一点。我试图通过创
我有以下问题:-创建了几个模块来实现类,并用-我的Android应用程序正在使用检索这些类。但是由于某种原因,没有在