String 三种为空的状态以及判断为空的方法

String的 null、isEmpty()和”“都有空的含义,但是意义不相同

 public static void main(String[] args) {

        String a = "";
        String b = null;
        String c= new String();
        testString(a);
        testString(b);
        testString(c);
        String d =c;
        testString(d.substring(0,0));
        System.out.println(null+"abcd");
        System.out.println(c);
    }
    private  static void testString (String testString){
        if(testString == null){
            System.out.println("String 状态为 :null");

        }
        if(testString !=null && testString.isEmpty()){
            System.out.println("String 状态为 :isEmpty");

        }
        if(testString !=null && testString.equals("")){
            System.out.println("String 状态为 :\"\"");

        }
        System.out.println("***********************");
    }

 

String 的isEmpty()方法,在String为null时,会出现空指针错误,isEmpty()方法底层是判断长度

因为"" 和 new String() 会有占位符,也是创建了对象,而null的时候,String不会创建占位符

换句话说:"" 和 new String() ,String是有长度,都是0 ,而为null时,长度是没有的

判断String时,推荐用lang3下的StringUtiles工具类中

StringUtils.isNotBlank();

StringUtils.isNotEmpty()

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果一个对象的所有字段都不为空,需要继续执行后续的代码,可以在`allFieldsNotEmpty`方法中加入一个回调函数,用于执行后续的操作。以下是一个示例代码,演示如何在对象的所有字段都不为空时继续执行后续的操作: ```java import java.lang.reflect.Field; public class ObjectUtils { public interface Callback { void onAllFieldsNotEmpty(); } public static void allFieldsNotEmpty(Object obj, Callback callback) { Field[] fields = obj.getClass().getDeclaredFields(); // 获取对象的所有字段 try { for (Field field : fields) { field.setAccessible(true); // 设置字段为可访问状态 Object value = field.get(obj); // 获取字段的值 if (value == null || "".equals(value)) { return; // 如果字段为空,则直接返回 } } } catch (IllegalAccessException e) { e.printStackTrace(); } if (callback != null) { callback.onAllFieldsNotEmpty(); // 所有字段都不为空,则执行回调函数 } } } ``` 在该示例代码中,我们在`ObjectUtils`工具类中定义了一个`Callback`接口,用于定义回调函数。然后在`allFieldsNotEmpty`方法中,当所有字段都不为空时,调用回调函数`callback.onAllFieldsNotEmpty()`执行后续的操作。 需要注意的是,在调用`allFieldsNotEmpty`方法时,需要传入一个实现了`Callback`接口的对象,以便在所有字段都不为空时执行回调函数。例如: ```java public class Main { public static void main(String[] args) { User user = new User("Tom", 18, "Male"); ObjectUtils.allFieldsNotEmpty(user, new ObjectUtils.Callback() { @Override public void onAllFieldsNotEmpty() { System.out.println("All fields are not empty"); // 执行后续操作 } }); } } ``` 在该示例代码中,我们创建了一个`User`对象,并调用`ObjectUtils.allFieldsNotEmpty()`方法判断对象的所有字段是否都不为空。同时,我们传入了一个实现了`Callback`接口的匿名内部类对象,用于在所有字段都不为空时执行后续操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值