当前位置: 首页 > 面试题库 >

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

贲绪
2023-03-14
问题内容

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

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

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

在这里,您可以找到该问题的答案,但仅适用于 C / C ++
。在这些语言中,两种声明样式的存在是完全有意义的。

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


问题答案:

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

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

因此,不仅没有意义-您根本找不到尝试使用此样式的有效代码。



 类似资料:
  • 问题内容: 请考虑以下两个函数定义: 两者之间有什么区别吗?如果没有,那为什么会有void争论呢?审美原因? 问题答案: 在C中: 表示“带有未指定类型的未指定数量的参数的函数” 表示不带参数的函数” 在C ++中: 表示“foo不带参数的函数” 表示“foo不带参数的函数” 因此,通过编写,我们可以在两种语言中实现相同的解释,并使标头变为多语言(尽管我们通常需要对标头做更多的事情才能使它们真正成

  • 考虑定义如下的 FooBar1 和 类型: 我的尝试/研究: 它们是双向相互分配的!(手动检查并使用检查 - 请参阅此处) 不过,它们彼此并不完全相同!(与检查 - 见这里) VSCode 的智能感知不会崩溃

  • 问题内容: 这两个(有效)通用范围是: 相同? 假设我有一个界面 和一些实现它的枚举: 我想要求实现不仅要使用a,而且还必须是枚举。“标准”方式是通过交叉点绑定: 但是我发现这也可行: 通过以上操作,可以编译出: 对于这两种情况,绑定均按上述要求和预期的方式工作。 这两个界限之间是否有区别(如果有),并且一个“优于”另一个? 问题答案: 在这种特定情况下,没有区别,因为Enums形式类型参数实际上

  • 问题内容: 早在2016年11月,我发布了一个问题,询问为什么我不能使用Guard创建与变量名称相同的未包装版本的变量,就像让let那样: 链接: 为什么后卫不让foo = foo有效? 当我编写该问题时,以下代码将无法编译,并显示“定义与先前值冲突”的错误: 但是,我只是在工作中发现了一些可以做到这一点的代码,现在它可以毫无抱怨地进行编译,并且可以完成我想要的工作!运行时,print语句显示fo

  • 问题内容: Foo具有: 和酒吧有: 除了表被称为foo_bar还是bar_foo之外,mappedBy属性的位置对双向关系有何影响?没有mapByBy属性,我得到两个联接表,即foo_bar和bar_foo。 问题答案: 该文档说: 如果关联是双向的,则一侧必须是所有者,而一侧必须是反向端(即,在更新关联表中的关系值时,它将被忽略): 因此,具有属性的一面是反面。没有属性的一方是所有者。 所有者

  • foo-display-lyrics 是 Foobar 2000 播放器用来显示歌词的插件。