我很多年沒有用Java編碼,但最近我被要求在工作中實現一個基於java的程序。長話短說,它做了我們需要的一切,除了將用戶ID放在報告中而不是電話號碼中。我應該指出,我們是擁有該計劃的公司的合作伙伴,並且我有權根據需要進行更改。但是,他們的網站不提供源代碼。我已經要求了,但3周後沒有運氣。所以,我必須對代碼進行反編譯,並進行必要的更改。我設法進行了更改,並刪除了除三個之外的所有編譯錯誤。它們在三種不同的For Loops上都是相同的錯誤。當我嘗試頂層編譯時,我得到以下內容。For Loop - 變量未被識別; 「沒有聲明」錯誤
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循環的代碼部分。我忽略了Main的剩餘部分。如果需要,我可以發佈整個班級(750行)或方法(160行)。我注意到的是str3被初始化,但在For循環中它不被識別。但是,如果我保留原始初始化,並嘗試在For循環內重新初始化。我的編譯器警告說變量已經在Method 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);
}
}
}
上線你所得到的錯誤?它從問題中不清楚。 – kaysush 2013-02-24 17:11:38
對不起,'for(str3:arrayOfString2)' – user2104894 2013-02-24 17:28:17
哪個java版本? Foreach需要java 5+ .. – atamanroman 2013-02-24 21:32:42