今天在寫代碼時,突然測試方法瘋狂報錯,仔細檢查了code幾遍,確認無紅線 = =!
既然代碼書寫沒有錯誤,那為什么報關于long類型的錯誤?
無奈之下,把DO、Info、Order 再次詳細對照了一次,總算發現問題所在。
因為項目中用到了Info整體賦值于DO中,而手賤誤操作把DO中某屬性定義成了Long??!
那么Long與long究竟有什么區別呢?
無外乎,int與Integer!
我們知道java的數據類型分兩種:
1.基本類型:long,int,byte,float,double,char …
2.對象類型(類): Long,Integer,Byte,Float,Double,Char,String … 其它一切java提供的,或者你自己創建的類。
其中Long叫 long的包裝類。Integer、Byte和Float也類似,一般包裝類的名字首寫是數值名的大寫開頭。
long、int是原始數據類型,沒有屬性方法,只能進行數學運算,Long是long及Integer時int相對應的引用數據類型,它有方法和屬性。
一個沒方法屬性,一個有方法屬性,這就是它們的區別。
關于更深的理解,大家需要自己去更深層的學習了,如果是使用迷惑,按照我的理解:
關鍵看你認為這個屬性不能為null,若需要設置為null,即使用Long,如若無需,便使用long。(基本數據類型無法存null)
例如:我有一個字段—有效狀態 我打算用 0 標識無效 , 1 標識 有效,非0即1,那我自然使用int便可。
如果我想在此基礎上,體現出為空值的狀態,那便選用Integer。
新聞熱點
疑難解答