2 回答
TA贡献1852条经验 获得超7个赞
正如多次提到的,它不应该编译。但是我也看到了您的屏幕截图以及它在您的计算机上实际运行时的困惑。
我认为您所看到的 eclipse 有一个“功能”,当它遇到错误时,它会运行该类的旧版本。我假设您之前只使用该int
方法构建并运行了该类,然后再添加该方法void
。
如果是这种情况,您可以做以下几件事:
如果您确实想保留此功能(当存在错误时启动旧版本),您可以执行清理(菜单:项目>清理...)以清除先前构建的版本。如果您现在尝试运行,Java 将停止并抱怨它无法构建您的源代码。
如果您认为此“功能”实际上可能有害,请转到“窗口”>“首选项”>“运行/调试”>“启动”>“如果项目包含错误则继续启动”>“提示”
TA贡献1829条经验 获得超7个赞
方法的签名必须不同:
Java 编程语言支持方法重载,Java 可以区分具有不同方法签名的方法。这意味着如果类中的方法具有不同的参数列表,则它们可以具有相同的名称(对此有一些限定,将在题为“接口和继承”的课程中讨论)。
读这个:
https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
因此,这将起作用,例如:
package com.sudeep.test;
public class StaticFunctionOverload {
public static void main(String arg[]) {
doSomeThing();
}
public static int doSomeThing() {
System.out.println("Im in int block");
return -1;
}
public static void doSomeThing(int param1) {
System.out.println("Im in void block with " + param1);
}
}
添加回答
举报