2016-04-30 12 views
0

私のコードはdeals.ok_id()がnullを与えたときにJavaのイテレータは、反復するunexpectadely

Iterator<BrokerDeals> it = listBrokerDeals.iterator(); 
ArrayList<BrokerDeals> listBrokerDeals_new = new ArrayList<BrokerDeals>(); 
        while (it.hasNext()) 
        { 
         BrokerDeals deals = it.next(); 
         Log.i("TRACE==","deals.ok_id"+deals.getOkId()); 
         if(!(deals.getOkId().equalsIgnoreCase(null))) 
         { 
          Log.i("TRACE==","deals.ok_id inside cond"); 
          listBrokerDeals_new.add(deals); 
         } 

        } 

        Log.i("TRACE==","list broker deals" +listBrokerDeals_new); 

私のログは、ログイテレータで見ることができるように

04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_id6321r9hrr960780 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_id inside cond 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_idx9crv9119111a 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_id inside cond 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_iden27yx79ph6082241a 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_id inside cond 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_idkhvu42e929520 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_id inside cond 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_iduly4n9b9ne2071111a 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_id inside cond 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_idkcis9719n464179 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_id inside cond 
04-30 08:20:28.021 28449-28449/com.o.n I/TRACE==: deals.ok_idnull 
04-30 08:20:28.871 28449-29253/com.o.n I/qtaguid: Untagging socket 137 

で停止している停止しますおよびLog.i( "TRACE =="、 "リストブローカー取引" + listBrokerDeals_new);これは決して印刷されません。

なぜプログラムがエラーなく停止しているのでしょうか?

答えて

1

getOkId()がnullかどうかを確認するためのコードが間違っています。

if(!(deals.getOkId().equalsIgnoreCase(null))) 

それは次のようになります。

if(!(deals.getOkId() == null)) 

そのメソッドがnull以外の文字列を想定しているため。そのJavadocの述べたように:

引数がヌルでなく、文字列 ケースを無視し、等しい場合、このメソッドはtrueを返します。そうでなければfalse。

関連する問題