kotlin:无法获取validationAPI的注释

========== ========== UPDATE 当我将注释更改为@get:NotNull,@get:Min和@get:Max时,hibernate-validator可以读取这些注释成功。 但我仍然想知道的是: 为什么validation-api的注释,比如@NotNull,@Min和@Max不能直接在数据类的成员上使用,而JPA的注释可以是? ==========贝娄是原产地问题=========== 当我尝试在数据类上使用validation-api注解时,Validator类(来自hibernate-validator)无法获得注释,所以validation失败。 我写了一个测试用例,其中包括3个数据类: 第一个使用JPA注释@Column和@Id,可以通过测试用例成功读取。 第二个在成员上使用validation-api注解@NotEmpty,@ Min,@Max,这些注解不能被测试用例读取 第三个使用validation-api注解@get:NotEmpty,@get:Min,@get:Max,测试用例不能读取这些注解。 @Column,@NotNull,@Min和@Max的目标和保留都是:RUNTIME和FIELD 那么,后面发生了什么? 我如何正确使用validation注释? 这里是测试用例: import org.hibernate.validator.constraints.NotEmpty import org.junit.Test import javax.persistence.Column import javax.persistence.Id import javax.validation.constraints.Max import javax.validation.constraints.Min import kotlin.reflect.KFunction import kotlin.reflect.KProperty import kotlin.reflect.jvm.javaField import kotlin.reflect.jvm.javaMethod class KotlinFeatureTest2 { @Test fun test_get_annotation() { // can get field’s annotation for BeanUseJPAAnnotation success println(“Getting field annotations […]

在kotlin中写入可分配的值

后端返回可空Int? 我应该如何编写可以为空的值? date class Foo (var value: Int?){ constructor(source: Parcel) : this( source.readInt() ) override fun writeToParcel(dest: Parcel, flags: Int) { dest.writeInt(value) // doesn’t compile – writeInt expect no null value } } 现在我解决了: dest.writeInt(value?: -1) 然后检查到-1 或者像Int字符串写入Int然后使用…的值… 但我认为这是丑陋的错误。 解决! 我的答案: source.readValue(Int::class.java.classLoader) as Int?, dest.writeValue(value)

Kotlin:如何在运行时在OneClass 中获得实际的genericstypesT.

朋友们! 我是Kotlin的绿手,现在这是一个问题。 现在我想在OneClass中获得genericstypesT,下面是一些外围代码。 // IDatabase.kt package com.ra abstract class IDatabase { } // Database1.kt import kotlin.reflect.jvm.javaType open class Database1: IDatabase() { val tClass = this::class.supertypes[0].arguments[0].type!!.javaType as Class } // Database2.kt import kotlin.reflect.jvm.javaType open class Database2: IDatabase() { val tClass = this::class.supertypes[0].arguments[0].type!!.javaType as Class // just wrap a `object` to confort the user companion object { […]

Kotlin等同于Java8中的Optional :: map

你知道是否有捷径: if (x == null) null else f(x) 对于Java Optional你可以这样做: x.map(SomeClass::f)

扩展MockitovalidationKotlin不工作(以“kotlin方式”)

我想扩展validation,以允许在同一模拟对象检查多个命令,但它不工作,它编译,但运行它不会运行每个命令相同。 只是想避免写更多的东西,如: Mockito.verify(mockedView).initViews() Mockito.verify(mockedView).setImage(user.photoUrl) 并写更多的像: Mockito.verify(mockedView){ initViews() setImage(user.photoUrl) } 第一次尝试: @Test fun onCreate_loadLoginInfo() { val user = MockUser.user() presenter.onCreate(mockedView, user) Mockito.myVerify(mockedView) { initViews() setImage(user.photoUrl) setName(user.name) setEmail(user.email) } } class Mockito { companion object } fun Mockito.Companion.myVerify(obj: T, func: T.() -> Unit) { org.mockito.Mockito.verify(obj).func() } 第二次尝试: @Test fun onCreate_loadLoginInfo() { val user = MockUser.user() presenter.onCreate(mockedView, user) […]

在构造函数中调用super并在Kotlin中分配一个字段?

我想初始化status字段里面的构造函数除了调用super 。 class MyException : RuntimeException { init { val status: Status } constructor(status: Status) : super() constructor(status: Status, cause: Throwable) : super(cause) } 我怎样才能做到这一点?

Kotlin中MutableList和List之间的区别

Kutableline中的MutableList和List有什么区别? 每种types的用途是什么?

vsarrays的Kotlin列表

这两个代码片段有什么不同? 以及如何决定使用哪一个? var array = arrayOf(1,2,3,4,5) 和 var list = listOf(1,2,3,4,5) 有了这两个代码,我可以通过像这样的索引访问它 println(array[0]) // Outputs 1 println(list[0]) // Outputs 1

如何在Kotlin中使用foldRight()?

我试试这个代码 println(listOf(1, 2, 4).foldRight(0) { total, next -> total – next }) 我以为它可以像0 + 4 – 2 – 1 = 1那样工作,但是它会返回3.为什么? 对不起,这个愚蠢的问题。

android studio 3.0.1和kotlin v1.2.10-release-Studio3.0-1有问题

我正在使用Android工作室3.0.1,我打算使用Kotlin。 我写了一些简单的代码,当应用程序运行android工作室显示我下面的错误: 错误:摇篮: 配置根项目“Firstapp1”时出现问题。 无法解析配置’:classpath’的所有文件。 无法解析com.android.tools.build:gradle:3.0.1。 要求: 项目: 无法解析com.android.tools.build:gradle:3.0.1。 无法解析POM https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.pom 已经看过doctype。 Gradle版本:4.1 Android插件版本:3.0.1 请帮我解决这个问题!