私はこのコードを持っています、それは選択されたファイルで既知のメソッドの名前を見つけるはずです:
String[] sorok = new String[listaZ.size()];
String[] sorokPlusz1 = new String[listaIdeig.size()];
boolean keresesiFeltetel1;
boolean keresesiFeltetel3;
boolean keresesiFeltetel4;
int ind=0;
for (int i = 0; i < listaZ.size(); i++) {
for (int id = 0; id < listaIdeig.size(); id++) {
sorok = listaZ.get(i);
sorokPlusz1 = listaIdeig.get(id);
for (int j = 0; j < sorok.length; j++) {
for (int jj = 1; jj < sorok.length; jj++) {
keresesiFeltetel3 = (sorok[j].equals(oldName)) && (sorokPlusz1[id].startsWith("("));
keresesiFeltetel4 = sorok[j].startsWith(oldNameV3);
keresesiFeltetel1 = sorok[j].equals(oldName) && sorok[jj].startsWith("(");
if (keresesiFeltetel1 || keresesiFeltetel3 || keresesiFeltetel4) {
Array.set(sorok, j, newName);
listaZarojeles.set(i, sorok);
}
}
System.out.println(ind +". index, element: " +sorok[j]);
}
ind++;
}
}
listaZはArrayListであり、要素は'('および''でスピアリングされます。listaIdeigはこのリストであり、最初の行はありません(keresesifeltetel3のため)oldNameV3は次のとおりです。oldName+()これが次のようになっている場合はメソッドの名前を検索しますthis:methodname(){..。
これを行うには、keresesifeltetel 3の次の行が必要ですが、正しく機能させることができません。何も検出されないか、エラーがドロップされます。現在、入力ファイルの要素を約15回書き出すので、そうする必要があります。keresesifeltetel3でエラーが表示され、次のようになります。
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0