public class p145_7 {
public static void main(String[] args) {
String cat(File file) { // ❌ 編譯錯誤:Syntax error on token ")", ; expected
// 方法體...
}
}
}
**Java 不支援區域方法 (Local Method)**。方法定義**必須直接置於類別內部**,不能巢狀在另一個方法 (包括 `main`) 內部。
import java.io.*;
import java.io.RandomAccessFile;
public class p145_7 {
// 1. 方法移至類別層級
public static String cat(File file) throws IOException {
try (RandomAccessFile input = new RandomAccessFile(file, "r")) {
String line;
StringBuilder sb = new StringBuilder();
while ((line = input.readLine()) != null) {
sb.append(line).append(System.lineSeparator());
}
return sb.toString();
}
}
public static void main(String[] args) {
// 2. 在 main 中呼叫
File file = new File("test.txt");
try {
String content = cat(file);
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
class LocalHelper { // ✅ 允許:區域類別
void print() { System.out.println("Hello"); }
}
new LocalHelper().print();
}
Java 允許在方法內定義**類別**,但**不允許定義方法**。