????Java??????????????????????????÷???????д????????????????????????????“??????????”????????????????????????????仰????????????????????????Щ?????????????????????ж?????????????????????Java?е????????????????????????????????????Javarevisited??????????????????????????????????????????Java?е?????????????????????????????????????ЩJava????????????????Щ???????????????Java?е??????????????Щ??????????????Java?????е??????е???????????????????о????Java?????????????????????е????????????????????????С?????????????м????????????????????????????????????????????????????????????????????Java????????????????
??????Щ?????????????????????????????????????????????????????????飬??е?????????????????????????????????????????????????κα?????????????????????Java????????????????????????????
????1) ???????String?????е???equals()??equalsIgnoreCase()??????????δ?????
????????????????String?????е???equals()?????????equals()??????????????a.equals(b)?????b.equals(a)???????????????????????????????a??b????????????????????????????????????????????????
Object unknownObject = null;
//????? – ??????? NullPointerException
if(unknownObject.equals("knownObject")){
System.err.println("This may result in NullPointerException if unknownObject is null");
}
//?????? - ???? unknownObject??null??????NullPointerException
if("knownObject".equals(unknownObject)){
System.err.println("better coding avoided NullPointerException");
}
?????????????????????Java????????????????????????equals()???????????????
????2) ??valueOf()??toString()????????????????????????
???????????null?????toString()???????????????????????????valueOf()???????????????????valueOf()?????????null??valueOf()??????“null”????????????Щ???????Integer??Float??Double??BigDecimal??
????BigDecimal bd = getPrice();
????System.out.println(String.valueOf(bd)); //??????????????
????System.out.println(bd.toString()); //??? "Exception in thread "main" java.lang.NullPointerException"
????3) ???null??????????? ?к????????????????????????鶴???????г???????????Apache commons ?е?StringUtils??????????StringUtils.isBlank()??isNumeric()??isWhiteSpace()????????????????????????????????
//StringUtils???????????????????????????????
System.out.println(StringUtils.isEmpty(null));
System.out.println(StringUtils.isBlank(null));
System.out.println(StringUtils.isNumeric(null));
System.out.println(StringUtils.isAllUpperCase(null));
Output:
true
true
false
false
????????????????????????????????????????????????????????????????′??????????????Java???????