Rub*_*ban 6 java string null android objective-c
为什么Java经常抛出空指针异常,如果我尝试访问空值而Objective C没有?
Java的:
public class SubscribeEmailActivity {
String status;
public static void main(String[] args){
if(Status.equals(null)||status.equals(""){
// i am getting error here
}
}
}
Run Code Online (Sandbox Code Playgroud)
目标C:
//in .h file
NSString *exp;
//in .m file
if ([exp isEqualToString:NULL] ||[exp isEqualToString:@""])
{
// i am not getting any error
}
Run Code Online (Sandbox Code Playgroud)
问题在于你在java中的评价,它应该是:
if(status == null||status.equals("")) {
//Do not try to dereference status....
Run Code Online (Sandbox Code Playgroud)
应该注意的是,这只能起作用,因为Java和其他语言允许在逻辑评估中进行捷径.在这种情况下,一些简单的布尔代数:
true || ??? => true
Run Code Online (Sandbox Code Playgroud)
一旦第一项计算结果为真,我们就知道OR条件也将评估为真,没有必要检查第二项.
此外,您可以使用Apache Commons isEmpty()或自己动手:
public static final boolean isEmpty(String arg0) {
if(arg0 == null) return true;
if(arg0.trim().length() < 1) return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
显示的版本类似于isBlankApache Commons.
小智 6
最终,完全解决此问题的唯一方法是使用不同的编程语言:
| 归档时间: |
|
| 查看次数: |
1722 次 |
| 最近记录: |