【JavaEE】Long.valueOf("" + requestContext.globalData("count"));__Java

來源:互聯網
上載者:User
1.問題:
Long.valueOf("" + requestContext.globalData("count"));

為什麼前面要加“”。 2.回答:

因為,“”是String類型的,String加上一個對象,就會自動給轉成了String類型,我們在debug的時候,如果要列印對象,就要慎寫:

Object a=new Object();...//省略了給a設定各個成員變數的值;console.log("Object:"+a)

因為如果a是一個對象,你前面給它加一個String類型的對象,在debug的時候,首先給你變成String類型,這個時候,一定要看自己的需求;
問題中的代碼也可以這樣寫:

Long.valueOf((String)requestContext.globalData(“count”))

但是這樣還是不好,因為強轉類型很可能會失敗,這也是我們前面沒有用(Long)來強轉的原因,再進一步修改為

Long.valueOf(String.valueOf(requestContext.globalData("count")));

但是這樣寫太複雜了;問題中的寫法還是好一些的。這裡如果Long有一個類似於“”的方法,我們也就可以用同樣的方法來轉換了,但是,我目前還不知道(不是反話,是目前真的還沒有接觸到);接下來的問題就是,“”和null的區別是什麼。 3.null和“”的區別;

為什麼剛才是“”和null的區別,現在標題改成了null和“”的區別,其原因後面說,賣個關子;
區別如下:
①null是空,一無所有,我沒有一套房子;“”是我有一套房子,但是房子是空的;這是質的區別,區別非常大;
②String s1=null未分配地址,String s2=“”分配了地址;
③null用等號比較,“”用equals比較,而且先判斷是不是null,再判斷是不是“”,即先判斷有沒有,再判斷是不是空;這裡,我感覺,null不能直接翻譯成“空”,而應該翻譯成“無”,因為“”的中文名叫“Null 字元串”,這樣起名會產生歧義,讓初學者誤解,甚至讓好多老手翻車;if(null==s1||(“”).equals.(s2)),否則會報null 指標異常的錯誤;這裡null要寫==的前面,s1要寫==的後面,這個是規範,也是避免報錯的技巧;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.