散貨:null 強轉 和 iOS null崩潰

來源:互聯網
上載者:User

標籤:

問題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崩潰

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.