成都网站建设设计

将想法与焦点和您一起共享

java存在大量判空代码,JAVA判空

java 字符串为null 如何判断

定义 String str;

成都创新互联公司于2013年开始,先为衡南等服务建站,衡南等地企业,进行企业商务咨询服务。为衡南企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

判断字符串是否空涉及两个层次:

1、是首先判断字符串变量的引用是否为空,即空对象的概念,用null来判断,可以用if(str==null) 判断 str是否为空;(注意不能用equals(null),在参数为null情况下,返回值永远是false);

2、是在不为空对象的情况下,在判断字符串对象是否为空串,即长度为0.用length()==0。 关键是搞清楚字符串对象为空和空字符串有区别。

拓展内容

Java空字符串与null的区别:

1、类型

null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;

""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;

2、内存分配

String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;

String str = ""; 表示声明一个字符串类型的引用,其值为""空字符串,这个str引用指向的是空字符串的内存空间;

在java中变量和引用变量是存在栈中(stack),而对象(new产生的)都是存放在堆中(heap)。

如下:

String str = new String("abc") ;

参考资料:java官方网站

Java中字符串的常用方法

java如不想么每次都判空 if(o !=null) 怎么做?

有一种模式叫NullObject,意思就是建立一个专用的空对象,以此来代表结果为空。比如这样:

public interface MyObj {

public String someOp();}

public class NullObj implements MyObj {

public String someOp() {

return It's a content of NullObj; // 或者抛出一个特定异常,又或者打印出一条警告信息}}

public class NormalObj implements MyObj {

public String someOp() {

String result = null;

// 执行一些正常的代码

return result;}}用法:1、建立全局常量:

public enum Constants { //这种写单例的方式在《Effective Java》中被推荐过,非常好的实现方式。

ONE;public final MyObj NULL_OBJ = new NullObj(); //如果用enum写单例的话这里就不用static修饰符了。}2、被调用的代码在条件符合的时候返回NullObj:

public class Server {

public MyObj receive(String param) {

if (param == null) {

System.out.println(...); //记录一些log

return Constants.ONE.NULL_OBJ;}MyObj result = null;

return result;}

...}3、在调用方:

public class Client {

public result send(String content) {

Server server = null;

String result = null;try {

... //初始化server

MyObj myObj = server.receive(content);

result = myObj.someOp(); //如果你前面选择的是抛出特定异常,则这行代码就必须放在try-catch语句块中了

...}}}当然,通过捕获异常来进行流程控制的方式是不被推荐的。NullObject很灵活,可以做出很多扩展性很强的实现方案。

java前台等于空的判断

在Java中,一个类为空的判断是常用的功能。但是各种类的空判断却不一样

当一个方法返回的是一个Object时,应使用==null来判断是否为空,例如在Servlet中的session判断用户是否登录可以用如下的代码

if (session.getAttribute("LoginUser")==null){

.............

}

但是如果是一个String类型的变量,或者某一个方法返回的是String类型的结果。其判断为空的方式又不一样了。需要使用String类中的equals方法。例如在JSP中获取URL中的参数,为保险起见,可以先判断这个参数是否为空,不空再获取。如果直接获取,一旦这个参数没有, 会造成空指向异常。代码如下

if (request.getParameter("id").toString().equals(null)){

out.println("未提供参数");

}else{

String id=request.getParameter("id").toString();

out.println(id);

}

假设页面地址为

如果不加判断 直接使用

String id=request.getParameter("id").toString();

out.println(id);

会造成空指向异常,而使用了判断后,这种情况下不报错,在页面上显示“未提供参数”。如果地址栏输入的是

则页面输出“123”

另外在字符串的“空”验证时还要注意一种情况,那就是“”空。

如果假想Java中有指针的概念的话,String a为null空,则表示变量没有指针去映射它;而String a为“”空,则表示该字符串有指针映射,但是映射到的内容为空。


分享文章:java存在大量判空代码,JAVA判空
标题URL:http://chengdu.cdxwcx.cn/article/hshosi.html