`foo()`和`foo(void)`之间的区别

在Java中,这两个函数声明之间有什么区别吗?

public void foo() {/*...*/} public void foo(void) {/*...*/} 

在这里你可以找到这个问题的答案,但对于C / C ++ 。 在这些语言中,两种声明风格的存在都是完全合理的。

但是在Java中这有什么意义呢?

后者声明在Java中是非法的。 你不能声明这样的方法。 你应该得到这样的错误:

 Test.java:8: error:  expected public void foo(void) {/*...*/} ^ 1 error 

所以不仅没有意义 – 你根本找不到试图使用这种风格的有效代码。

你可以试试

 public void foo(Void v) {/*...*/}