私は長年Javaでコーディングしていませんが、最近、Javaベースのプログラムを動作させるように依頼されました。簡単に言うと、電話番号の代わりにユーザーIDをレポートに配置することを除いて、必要なすべてのことを実行しました。私たちはプログラムを所有する会社のパートナーであり、必要に応じて変更する許可を得ていることを指摘しておく必要があります。ただし、彼らのWebサイトはソースコードを提供していません。リクエストしましたが、3週間経っても運がありません。そのため、コードを逆コンパイルして、必要な変更を加える必要があります。私はなんとか変更を加え、3つを除くすべてのコンパイルエラーを削除しました。これらはすべて、3つの異なるForループで同じエラーです。トップコンパイルを試みると、次のようになります。
FraudDetectionTool.java:655: not a statement
for ( str3 : arrayOfString2 ) {
^
FraudDetectionTool.java:655: ';' expected
for ( str3 : arrayOfString2 ) {
^
FraudDetectionTool.java:655: illegal start of expression
for ( str3 : arrayOfString2 ) {
^
FraudDetectionTool.java:655: ';' expected
for ( str3 : arrayOfString2 ) {
^
FraudDetectionTool.java:681: not a statement
for (str3 : array3) {
^
FraudDetectionTool.java:681: ';' expected
for (str3 : array3) {
^
FraudDetectionTool.java:681: illegal start of expression
for (str3 : array3) {
^
FraudDetectionTool.java:681: ';' expected
for (str3 : array3) {
^
FraudDetectionTool.java:695: not a statement
for (str3 : arrayOfString3) {
^
FraudDetectionTool.java:695: ';' expected
for (str3 : arrayOfString3) {
^
FraudDetectionTool.java:695: illegal start of expression
for (str3 : arrayOfString3) {
^
FraudDetectionTool.java:695: ';' expected
for (str3 : arrayOfString3) {
これは、最初のforループを含むコードのセクションです。メインの残りの部分を省略しました。必要に応じて、クラス全体(750行)またはメソッド(160行)を投稿できます。私が気付いたのは、str3が初期化されているのに、Forループ内では認識されないということです。ただし、元の初期化をそのままにして、Forループ内で再初期化を試みた場合。私のコンパイラは、変数がメソッドMainですでに使用されていることを警告します。
public static void main(String[] paramArrayOfString)
{
initializeProperties();
init();
GenericInputChannel.initialize(true);
for (String str1 : paramArrayOfString) {
fileNames.add(str1);
}
try
{
String[] mail = EMAIL_ADDRS.split(",");
for (String str2 : mail) {
str2 = str2.replaceAll(" *", "");
emailAddresses.add(str2);
if (str2.length() > 0) {
if (DEBUG) {
System.out.println("Adding email " + str2);
}
sendEmail = true;
}
}
}
catch (Exception localException1) {
System.out.println("Error parsing email addrs " + EMAIL_ADDRS);
emailAddresses.clear();
}
if (TEST_MODE) {
System.out.println("Sending Test email");
sendEmail(true);
System.exit(0);
}
String[] arrayOfString2 = new String[1];
String str3;
if (fileNames.size() == 0)
{
File localfiler = new File(DEFAULT_BILLING_DIR);
if (((File)localfiler).exists()) {
arrayOfString2 = ((File)localfiler).list();
for ( str3 : arrayOfString2 ) {
fileNames.add(DEFAULT_BILLING_DIR + str3);
}
}
}