2016-11-22 78 views
0

我想使用JsonDeserialize类,但IDE显示编译错误。斯卡拉JsonDeserialize错误

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 
} 
} 

误差(编译)是@JsonDeserialize(使用= FeatureMapDeserializer.class)。徘徊过线后的错误是型FeatureMapDeserializer的表达不符合预期的类型等级[< JsonDeserializer [_]

我想不通的原因,所以我期待着任何建议。

在此先感谢。

+0

粘贴SBT的全部结果编译请 – pedrorijo91

回答

0

您正在使用Java语法,而不是Scala。

@JsonProperty 
@JsonDeserialize(using = classOf[FeatureMapDeserializer]) 
def foo = ??? 
+0

我也显示同样的,现在的错误是“无法解析JsonDeserialize.apply” – wadhwasahil

+0

@wadhwasahil它是一个运行时错误,还是'FeatureMapDeserializer'做到吗? – NaHeon

+0

这是一个编译错误,我猜。并在@JsonProperty行,它说“定义或声明的预期” – wadhwasahil