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");
を使用しましたが、決して印刷しませんでした)。私は自分自身のこの問題の解決策を見つけるために多くを探し求めましたが、何らかの進歩を遂げることはできませんでしたので、どこに問題があるのか、間違っているのか分かっている人に教えていただければ幸いです。とにかくありがとう。
'here'が表示されない場合、' TempComms'が空であることを意味します。これは、 'tempRegistry.GetComms()'が返すものが空であることを意味します。これは事実です。 – Kayaman
tempRegistry.GetComms()は、ArrayListのcommuを返します。しかし、ArrayList通信を空にすることはできません。なぜなら、メソッドを渡す前に別のメソッドでArrayList通信を印刷しようとしました。その内容はnormallとして出力されます。 –
空です。それはそのコードで与えられた唯一の可能性です(したがって私の最初のコメントでは "これは事実です")。 – Kayaman