想要在querystring中测试参数值是否为null

Ank*_*kur 0 java

我正在使用servlet来做一系列的事情.

如果某个特定参数"t"不存在,我想进行某些类型的处理,如果是,我想做不同的事情.

我正在尝试使用以下条件测试参数t(我将其保存为名为editType的String):

String editType = request.getParameter("t");
if(!editType.isEmpty()||!(editType==null)){
    //processing here
}
Run Code Online (Sandbox Code Playgroud)

我如何正确地进行此测试,因为我遇到了nullpointerexception的问题,因为我的代码似乎总是期望"t"的值我需要能够创建一个不期望t的条件(允许它是null),并在那里进行处理.

Ada*_*kin 15

您需要稍微重新排序比较,特别是首先检查null:

String editType = request.getParameter("t");
if(editType!=null && !editType.isEmpty()){
    //processing here
}
Run Code Online (Sandbox Code Playgroud)

您遇到的问题是Java正在尝试isEmpty()null对象上调用该方法,这就是您需要先检查的原因null.

Java使用短路评估,这意味着它将从左到右检查您的条件,一旦找到一个可以让它决定整个条件的结果,它就会停止评估.因此,如果editType最终为null,Java将停止评估整个if语句,并且不会尝试调用isEmpty()(这将导致a NullPointerException).