我正在使用servlet来做各种各样的事情。
如果不存在特定的参数“ t”,那么我想执行某些类型的处理,如果确实要执行其他操作。
我正在尝试使用以下条件测试参数t(将其保存为名为editType的字符串):
String editType = request.getParameter("t");
if(!editType.isEmpty()||!(editType==null)){
//processing here
}
我如何正确地执行此测试,因为我遇到了nullpointerexception问题,因为我的代码似乎总是期望“ t”的值,所以我需要能够创建一个不期望t的条件(允许它为null),并在其中进行处理。
最佳答案
您需要重新排序比较,特别是首先要检查null
:
String editType = request.getParameter("t");
if(editType!=null && !editType.isEmpty()){
//processing here
}
您遇到的问题是Java试图在
isEmpty()
对象上调用null
方法,这就是为什么您需要首先检查null
的原因。Java使用Short-circuit evaluation,这意味着它将从左到右检查您的条件,并且一旦找到可以确定整个条件结果的条件,它将停止评估。因此,如果
editType
最终为空,则Java将停止评估整个if
语句,并且不会尝试调用isEmpty()
(这将导致NullPointerException
)。