Reputation: 468
I am trying to use JsonDeserialize class but the IDE is showing compilation error.
GateAnnotation.scala
package com.scryAnalytics.NLPAnnotationController.DAO
import com.scryAnalytics.NLPGeneric.DAO.FeatureMapDeserializer
import org.codehaus.jackson.annotate.JsonProperty
import org.codehaus.jackson.map.annotate.JsonDeserialize
import gate.{FeatureMap, Node}
import gate.annotation.AnnotationImpl
/**
* Created by sahil on 22/11/16.
*/
class GateAnnotation(id: Integer, start: Node, end: Node, types: String, features: FeatureMap) extends
AnnotationImpl(id, start, end, types, features) {
private final val serialVersionUID: Long = 1L
@JsonProperty
@JsonDeserialize(using = FeatureMapDeserializer.class)
}
FeatureMapDeserializer.scala
package com.scryAnalytics.NLPAnnotationController.DAO
import java.util.Map
import gate.{Factory, FeatureMap}
import org.apache.hadoop.yarn.webapp.hamlet.HamletSpec._Object
import org.codehaus.jackson.JsonParser
import org.codehaus.jackson.map.{DeserializationContext, JsonDeserializer}
class FeatureMapDeserializer extends JsonDeserializer[FeatureMap] {
override def deserialize(jsonParser: JsonParser, deserializationContext: DeserializationContext): FeatureMap = {
val features = jsonParser.readValueAs(classOf[Map[_Object, _Object]])
val featureMap = Factory.newFeatureMap()
featureMap.putAll(features)
featureMap
}
}
The error (compilation) is @JsonDeserialize(using = FeatureMapDeserializer.class). The error after hovering over the line is Expression of type FeatureMapDeserializer doesn't conform to expected type Class [ < JsonDeserializer[_]]
I can't figure out the reason, so I look forward to any advice.
Thanks in advance.
Upvotes: 0
Views: 786
Reputation: 247
You're using Java syntax, not Scala one.
@JsonProperty
@JsonDeserialize(using = classOf[FeatureMapDeserializer])
def foo = ???
Upvotes: 1