码迷,mamicode.com
首页 > 移动开发 > 详细

散货:null 强转 和 iOS null崩溃

时间:2016-08-02 13:45:12      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

问题1

在看  SpringMVC源码剖析(五)-消息转换器HttpMessageConverter  的时候,在 org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor 中看到如下代码:

protected AbstractMessageConverterMethodProcessor(List<HttpMessageConverter<?>> converters) { 
     this(converters, (ContentNegotiationManager)null); 
}

一时间没有反应过来为什么要强转null。

因为之前测试过,null 强转之后,就可以调用相应类的静态方法。一时间就想岔了---特别是没再注意这里是构造方法。

上网求助,有人回复一针见血,这就是为了区别不同的构造方法。

因为,如果有构造方法如下:

public class X {
    X(A a, B b){ ... };   
    X(A a, C c){ ... };   
}

那么,调用 X( a, null ) 时,就不知道是哪一个构造方法了!

所以,这时就需要强转一下,以便区分。

 

问题2

跟同事聊起来iOS解析json遇到null就会崩溃的问题。

虽然我坚定的认为这是iOS的解析工具太弱--毕竟json是通用格式,但是问题还是需要解决的。

简单的办法就是使用Jackson标注实体类,忽略值为null的属性。

@JsonInclude(Include.NON_NULL) 

 

参考

jackson 实体转json 为NULL或者为空不参加序列化

SpringMVC源码剖析(五)-消息转换器HttpMessageConverter

ios中json解析出现的null问题

散货:null 强转 和 iOS null崩溃

标签:

原文地址:http://www.cnblogs.com/larryzeal/p/5728819.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!