您的位置:首页 > 编程语言 > Java开发

API使用的注意事项

2015-10-13 17:26 549 查看
在日常编码中,我们习惯性会使用JDK所提供的api,在使用的同时需要避免API的错误用法,否则就会把你绕坑里了。
一下这些场景是最近工作中遇到过的一些比较坑爹的问题。
场景1:equals的用法
许多对象都提供了这个方法 boolean equals(Object anObject)
先看以下代码:
public void functionOne(String name){
boolean checkResult  = name.equals("xxx");
}


代码中可能存在问题:若此方法入参name为NULL,则在运行期间会抛出空指针异常
这个方法通常用来比较两个同数据类型的对象是否相同 若明确一个对象不为空,则建议写如下代码
ObejctOne.equals(ObjectTwo);
若ObjectOne为NULL,则代码在运行时就会抛出空指针,而相对来说,若One不为空,而Two为空的话,则不会报错
强调一下使用equals的时候 必须保证两个对象类型一致,我在编码中发现,将一个String和一个int去equals 编译没错的 但永远都是false
如下:
String compareString = "12345";
boolean compareResult = compareString.equals(12345);


场景2:String.ValueOf()的用法
将数据类型强制转换成String类型
代码:
public void functionTwo(String name){
String result = StringUtil.isBlank(String.valueOf(name));
}


代码中可能存在问题:入参name为NULL,则判空结果result为false。
原因是使用 String.valueOf() 进行数据转换,如果被转换的数据为 null, 则这种方法将返回一个 "null"字符串
为了避免以上的问题,建议编码的时候使用 org.apache.commons.lang.ObjectUtils提供的
public static String toString(Object obj, String nullStr) {
return obj == null ? nullStr : obj.toString();
}
public void functionTwo(String name){
String result = StringUtil.isBlank(ObjectUtils.toString(name, StringUtils.EMPTY));
}


持续更新!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  API java