若是其餘類型更加合適,請避免使用字符串(50)

不該該使用字符串的情形:安全

一、字符串不適合代替其餘的值類型對象

  • 傳入程序的數據是什麼類型就用什麼類型保存,不是全用字符串保存

二、字符串不適合代替枚舉類型blog

三、字符串不適合代替彙集類型字符串

  • 保存多個數據,用一個長字符串(過程慢、繁瑣、容易出錯)
  • 使用一個簡單的類描述數據集,成員使用私有靜態成員

四、字符串不適合代替能力表命名空間

  • 上述字符串key 表明一個共享全局命名空間(key 必須惟1、存在巨大安全隱患)
  • 以下使用不可僞造的鍵

  • 進一步改進,使用內嵌ThreadLocal

  • 非類型安全、進一步改進

  • 類型安全的緣由是 T 代替Object ,獲取值後使用 Object 強轉帶來類型不安全
  • ThreadLocal 更快、更優雅、不基於字符串

總結:程序

  • 若是有更加合適的類型,避免使用字符串代替對象
  • 使用不當會顯得更加笨拙、不靈活、速度慢、容易出錯
  • 常常被錯誤使用字符串代替的類型包括基本類型、彙集類型、枚舉類型
相關文章
相關標籤/搜索