如何防止Java中的方法重载?

bil*_*llu 11 java overloading

使用关键字可以防止覆盖方法final,同样如何防止重载?

Boz*_*zho 14

你不能.因为它几乎没有意义.

如果你想重载方法,handle(..)但是你不允许这样做,你可以创建doHandle(..).

在编译时确定使用哪种重载方法(与在运行时确定的重写方法相反).因此,重载点是共享常用操作的通用名称.不允许这是代码风格的问题,而不是其他任何问题.

  • +1毫无意义.编译器永远不会选择(一个)重载方法而不是重载方法. (2认同)

aio*_*obe 13

你不能用Java做到这一点.

重载方法基本上只是另一种方法.

尝试可能看起来像这样

void yourMethod(String arg) { /* ... */ }

void yourMethod(String arg, Object... prevent) {
    throw new IllegalArgumentException();
}
Run Code Online (Sandbox Code Playgroud)

但是由于Java通过查看"最佳匹配"或"最具体的签名"来解决重载问题,因此无法正常工作.

该方法仍然可以用a重载

void yourMethod(String arg, String arg2) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

在做的时候会被调用yourMethod("hello", "world").

顺便问一下,你为什么要防止超载?也许还有另一种方法可以做你想做的事情?