Jackson의 @JsonSubTypes 주석을 사용하는 일부 Java 코드를 다형성을 변환하려고합니다.Kotlin에서 Jackson JsonSubTypes annotation을 사용하는 방법
다음@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Comment.class, name = "CommentNote"),
@JsonSubTypes.Type(value = Photo.class, name = "PhotoNote"),
@JsonSubTypes.Type(value = Document.class, name = "DocumentNote")
})
public abstract class Note implements Identifiable {
[...]
내가 동등한 것 생각 코 틀린 코드 :
JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "type")
JsonSubTypes(
JsonSubTypes.Type(value = javaClass<Comment>(), name = "CommentNote"),
JsonSubTypes.Type(value = javaClass<Photo>(), name = "PhotoNote"),
JsonSubTypes.Type(value = javaClass<Document>(), name = "DocumentNote")
)
abstract class Note : Identifiable {
[...]
하지만 세 "JsonSubTypes 각각 다음과 같은 오류를 얻을 여기
는 작업 자바 코드입니다. 유형 "행 :
Kotlin: An annotation parameter must be a compile-time constant
Kotlin: Annotation class cannot be instantiated
어떤 아이디어가 있습니까?
죄송합니다. 더 이상 확인할 수 없지만 아직 질문이 있습니다. '.java' 속성 호출이 필요하지 않습니까? 예 :'value = Comment :: class.java' – clemp6r
컴파일러는 불평하지 않습니다. 그것은 .java 속성을 사용할 때 수행됩니다. 이 솔루션은 내 프로젝트에서 작동합니다. –