日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

String.isEmpty() 方法使用報空指針異常?那怎么才能更好的判斷String返回值為空的情況呢?

作者:Casey·Hu 更新時間: 2022-05-25 編程語言

因為用了isEmpty() 這個方法,然后控制臺就報了一個這

16-Apr-2022 12:13:50.900 SEVERE [http-nio-8080-exec-8] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [springDispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
 java.lang.NullPointerException
	at com.bs.controller.UsersController.editUserType(UsersController.java:506)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)

報錯放在上邊了,我想的是判斷一下返回的String字符串是不是空的,然后代碼是這樣寫的
在這里插入圖片描述

queryById.getUserSponsortwo().isEmpty()

報錯原因:

String在調用isEmpty()方法時判斷是否為空,在String為null的時候,就會報空指針異常啦。這個原因大概就是在String為null的時候是沒有創建String對象的,所以就不能調用isEmpty()。但是實際上String是空的情況有三種

String=null;
String=" ";
Srtring string=new String();

其中就會出現String=null;調用isEmpty()報錯的情況,所以在這三種情況都出現的場景,都是選項使用 工具類 StringUtils

解決辦法:

首先要使用工具類 StringUtils ,首先得導入pom依賴

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

然后調用 isBlank() 方法,String為空 返回 FALSE

import org.junit.jupiter.api.Test;
import org.junit.platform.commons.util.StringUtils;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class test1 {
    @Test
    public static void main(String[] args) {

            String string=null;
            String string1="";
            String string2=new String();
//        //whetherIsKong(string);
//        whetherIsKong(string1);
//        whetherIsKong(string2);
            newwhetherIsKong(string);
            newwhetherIsKong(string1);
            newwhetherIsKong(string2);
    }

    public static void whetherIsKong(String string){
        if(string==null){
            System.out.println("string==null");
        }
        if("".equals(string)){
            System.out.println("string為 ‘ ’");
        }
        if(string.isEmpty()){
            System.out.println("string isEmpty");
        }
    }
    public static void newwhetherIsKong(String string){
        if(StringUtils.isBlank(string)){
            System.out.println("string is Blank");
        }
        if(StringUtils.isNotBlank(string)){
            System.out.println("string is NotBlank");
        }
    }

祝您萬事順心,沒事點個贊唄,關注一下也行啊,如有不對請指正?

原文鏈接:https://blog.csdn.net/qq_43658218/article/details/124211479

欄目分類
最近更新