
该错误提示表明代码存在语法问题,导致编译器无法生成有效字节码;核心原因是 Java 不支持在方法调用时使用 参数名: 值 的命名参数语法(如 input: "apa pun"),这属于常见混淆——误将其他语言(如 Kotlin、Python)的语法带入 Java。
该错误提示表明代码存在语法问题,导致编译器无法生成有效字节码;核心原因是 java 不支持在方法调用时使用 `参数名: 值` 的命名参数语法(如 `input: "apa pun"`),这属于常见混淆——误将其他语言(如 kotlin、python)的语法带入 java。
在您提供的代码中,关键错误位于 main 方法第 10 行:
fungsiVoid( input: "apa pun");
这段代码不符合 Java 语法规则。Java 要求方法调用时仅传递实参值(或表达式),不支持形参名显式标注。input: 这一部分会被编译器识别为非法 token,导致解析失败,进而触发 IDE(如 NetBeans 或某些旧版 IntelliJ 配置)抛出 RuntimeException: Uncompilable source code - Erroneous tree type:
✅ 正确写法应为:
fungsiVoid("apa pun"); // 直接传入字符串字面量,无需参数名
同时需注意其他潜在问题以确保完整可运行:
- simpel() 方法返回 float,但 System.out.println() 可安全接收并打印 float 类型,无问题;
- 所有方法定义位置合理,访问修饰符与返回类型匹配;
- 包声明 package fungsi; 要求源文件路径为 fungsi/Main.java,否则会引发编译路径错误(虽不直接导致当前异常,但属常见配套问题)。
? 总结与建议:
- Java 不支持命名参数(named arguments),所有参数必须按声明顺序严格传入;
- 此类错误通常由 IDE 自动补全误导、跨语言开发经验迁移或教程示例混用引起;
- 编译前务必检查语法高亮/错误提示:现代 IDE(如 IntelliJ IDEA、Eclipse)会在 input: 处标红并提示 “unexpected token”;
- 若使用 NetBeans,该 RuntimeException 往往意味着项目未成功编译,应优先查看“Problems”视图中的编译错误,而非仅关注控制台堆栈。
修复后完整可运行代码如下:
package fungsi;
public class Main {
public static void main(String[] args) {
System.out.println(simpel());
fungsiVoid("apa pun"); // ✅ 已修正:移除 "input:"
}
private static void fungsiVoid(String input) {
System.out.println(input);
}
private static float simpel() {
return 10.0f;
}
private static int farhan() {
return 0;
}
}Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











