@transient是java 的transient关键字的作用,是需要实现Serilizable接口,@transient是类型修饰符,只能用来修饰字段。在对象序列化过程中, /被transient标记的变量不会被序列化
在Scala中需要使用@transient修饰的方法时,需要进行注册,这里是解析json字符串的时候使用到的。下面是一个例子
定义:
/**
* ObjectMapper 的单例对象
*/
object ObjectMapperSingleton{
//@transient是类型修饰符,只能用来修饰字段。在对象序列化过程中,
// 被transient标记的变量不会被序列化
@transient private var objectMapper:ObjectMapper = _
def getInstance():ObjectMapper ={
if(objectMapper == null){
objectMapper = new ObjectMapper()
objectMapper.registerModule(DefaultScalaModule) //将Java类型的注册为Scala的对象
}
objectMapper
}
}
调用
//解析JSON格式数据 为 Order对象
val mapper = ObjectMapperSingleton.getInstance()
val order: Order = mapper.readValue(msg,classOf[Order])
以上是在学习过程中一些理解