问题在这里: if (index_stock!=null&index_stock.equals(ConstantConfig.MSG_STOCK_WANT))中的&,如果你用的是&&,那么,就不会出现这样的情况了! &表示,你前面的尽管是false,但是程序还会继续判断后面的条件,所以index_stock.equals就出空指针 &&表示,一旦前面出现false,那么就不会在执行if后面的条件语句了
if (index_stock!=null&index_stock.equals(ConstantConfig.MSG_STOCK_WANT)) ====> if (index_stock!=null&&index_stock.equals(ConstantConfig.MSG_STOCK_WANT)) 用&&就可以短路了,即第一个条件满足或不满足,第二个条件不去做判断. 用&就是非做不可的,就...
恩,明白~~ 我用上面那个简单的例子试过了,明白了其中的道理。但我将原来程序里的代码改为 if (index_stock!=null&&index_stock.equals(ConstantConfig.MSG_STOCK_WANT)) 好象还回出现空指针,可能是我其它地方还有其它问题,待会再好好检查一下~~
....
}
如果是text,那么没有值的话,默认是空,
如果是select的话如果没有选择,则是null
所以要看是取得哪种控件值.
经典的判断应该是:
if(str==null || str.length<1){//这样就能判断request有没有取到值了
...
}else{
...
}
在这里,我用的是!=null,但在运行时,也是抛出了空指针异常,那么这个问题产生的原因又是什么?index_stock=request.getParameter("Service");
if (index_stock!=null&index_stock.equals(ConstantConfig.MSG_STOCK_WANT))
//按代码查询股票行情
{
System.out.println("股票行情");
out.write(000);
out.flush();
out.close();
}
if (index_stock!=null&index_stock.equals(ConstantConfig.MSG_STOCK_WANT))中的&,如果你用的是&&,那么,就不会出现这样的情况了!
&表示,你前面的尽管是false,但是程序还会继续判断后面的条件,所以index_stock.equals就出空指针
&&表示,一旦前面出现false,那么就不会在执行if后面的条件语句了
====>
if (index_stock!=null&&index_stock.equals(ConstantConfig.MSG_STOCK_WANT)) 用&&就可以短路了,即第一个条件满足或不满足,第二个条件不去做判断.
用&就是非做不可的,就...
我用上面那个简单的例子试过了,明白了其中的道理。但我将原来程序里的代码改为
if (index_stock!=null&&index_stock.equals(ConstantConfig.MSG_STOCK_WANT))
好象还回出现空指针,可能是我其它地方还有其它问题,待会再好好检查一下~~