我试图让Kotlin在spring-data-rest项目上使用jsr 303验证.
给出以下数据类声明:
@Entity data class User(
@Id
@GeneratedValue(strategy = javax.persistence.GenerationType.AUTO)
var id: Long? = null,
@Size(min=5, max=15)
val name: String
)
Run Code Online (Sandbox Code Playgroud)
@Size注释在这里没有任何效果,使我能够保存名称为1个字符的用户.
它在执行相同的示例时效果很好,但在Java类而不是Kotlin中.
这让我想起了Kotlin问题.
在此先感谢您的帮助!
我想从API中获取XML数据,并使用Kotlin中的Retrofit2 + SimpleXML将其映射到Kotlin模型对象.
但是,我收到了来自SimpleXML的以下错误消息.
org.simpleframework.xml.core.MethodException:注释@ org.simpleframework.xml.Element(data = false,name =,required = true,type = void)必须标记set或get方法
这是获取的XML数据
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
<result code="0">Success</result>
<token>XXXXXXXXXXXXXXXXXXXX</token>
<uid>4294967295</uid>
</response>
Run Code Online (Sandbox Code Playgroud)
Kotlin模型对象如下
@Root(name = "response")
public class User() {
@Element public var result: String? = null
@Element public var token: String? = null
@Element public var uid: String? = null
}
Run Code Online (Sandbox Code Playgroud)
和APIClient如下.
interface MyService {
@GET("/testLogin.xml")
fun getUser(): Call<User>
}
val retrofit = Retrofit.Builder()
.baseUrl(baseURL)
.addConverterFactory(SimpleXmlConverterFactory.create())
.build()
val call = retrofit.create(MyService::class.java).getUser()
call.enqueue(object: Callback<User> {
override fun onResponse(p0: …
Run Code Online (Sandbox Code Playgroud)