[天天一個知識點]18-Java語言-在switch中接受String類型

在Java7中增長了一個新特性,switch能夠接受String類型的變量,這就省下了書寫大量if ("xxx".equals(yyy))的繁複工做。示例代碼就免了,僅僅是一個數據類型的改變而已,若是會用原來的switch而在5分鐘內搞不定String類型的switch,建議仍是放棄作程序員吧……java

至於內部實現,java一點都沒增長新內容,其實代碼是被轉換成了這個樣子程序員

switch (xxx.hashCode()) {  
case 1024:  // 假設原來是"aaa",而"aaa"的hashCode是1024。  
    if ("aaa".equals(xxx)) {  
        // 這裏是原來"aaa"下的代碼  
    }  
  
case ...  
}

固然這只是某個具體版本時的實現,不保證在將來永遠是這個樣子的。spa

最後留2個問題:code

1. 爲何要if ("aaa".equals(xxx))這個判斷?orm

2. 自問一下若是是本身寫這個代碼,會在第一時間寫上這個判斷嗎?hash

相關文章
相關標籤/搜索