2017-11-19 10 views
0
public boolean isConnectedTo(Suspect aSuspect){ 

    boolean flag = false; 
    Registry tempRegistry = new Registry(); 
    ArrayList<Communication> TempComms = new ArrayList<Communication>(tempRegistry.GetComms()); 


    for(Communication comms : TempComms) { 
     System.out.println("here"); 
     for(String PhoneNums : phoneNumbers){ 
      if(PhoneNums.equals(comms.GetTransmitter())) { 
       for(String numbers : aSuspect.getNumbersList()) { 
        if(numbers.equals(comms.GetReceiver())) 
         flag = true; 
        } 

       } 
      } 
    } 
    return flag; 

} 

私は、とりわけ、2つのArrayList(TempComsとphoneNumbers)を検索し、文字列かどうかを返すプログラムを作成しようとしています。最初の文字列は2番目の文字列と同じかどうかです。方法tempRegistry.GetComms()で新しいArrayList TempCommsを作成します。 GetComms()は、別のクラス(クラスレジストリ)のメソッドであり、return communications;コマンドだけを持ち、通信はクラスレジストリのArrayListです(ArrayList phoneNumbersはコードが入っているクラスのarrayListです)ので、通常ArrayListの内容を他のArrayListにコピーする方法

ArrayList<Communication> TempComms = new ArrayList<Communication>(tempRegistry.GetComms()); 

ArrayList TempCommsは、他のクラスにあるArrayList communicationと同じでなければなりません。しかし、何らかの理由でTempCommsに問題があることがわかりました。なぜなら、最初の実行は決して実行されていないからです(その理由で私はSystem.out.println("here");を使用しましたが、決して印刷しませんでした)。私は自分自身のこの問題の解決策を見つけるために多くを探し求めましたが、何らかの進歩を遂げることはできませんでしたので、どこに問題があるのか​​、間違っているのか分かっている人に教えていただければ幸いです。とにかくありがとう。

+2

'here'が表示されない場合、' TempComms'が空であることを意味します。これは、 'tempRegistry.GetComms()'が返すものが空であることを意味します。これは事実です。 – Kayaman

+0

tempRegistry.GetComms()は、ArrayListのcommuを返します。しかし、ArrayList通信を空にすることはできません。なぜなら、メソッドを渡す前に別のメソッドでArrayList通信を印刷しようとしました。その内容はnormallとして出力されます。 –

+0

空です。それはそのコードで与えられた唯一の可能性です(したがって私の最初のコメントでは "これは事実です")。 – Kayaman

答えて

1

リスト(comms)を含むレジストリの新しいインスタンスを作成しています。

Registry tempRegistry = new Registry(); 

その後、あなたはtempRegistry.GetComms()を呼び出すことによって、そのCOMMリストを取得しようとしています。

forループが呼び出されたときにリストが空になるのは、コンストラクタRegistry()で(このインスタンスを作成するだけでなく、いくつかのエントリも追加する必要があります)

(あなたははっきりがtempRegistryインスタンスを作成した後に、ループのために呼び出す前に、それを移入しないされているので。

ArrayList<Communication> TempComms = new ArrayList<Communication>(tempRegistry.GetComms()); 


    for(Communication comms : TempComms) { 

したがって、TempCommsリストも空のリストである。理由であります

+0

うーん、ありがとう..!今私は問題がどこにあるかを知る。私は自分のコードを変更し、今は正常に動作します。再度、感謝します! –

関連する問題