gpt4 book ai didi

java - PMD CallSuperInConstructor 是什么原因?

转载 作者:行者123 更新时间:2023-11-30 07:42:30 25 4
gpt4 key购买 nike

PMD 定义规则CallSuperInConstructor .当编译器不需要时,在构造函数中添加对 super() 的无参数调用的目的是什么?

我意识到我可以禁用该规则或使用 @SuppressWarnings 使每个类中的规则静音。

This question处理为什么应该在构造函数中调用 super(...)。我的问题是当编译器不需要它时为什么要添加一个无参数的 super() 调用。

最佳答案

如果你的类(class)

  • 有许多重载的构造函数
  • 正在扩展一个非Object类,它有许多重载的构造函数

然后当您显式调用 super() 时,它可以避免混淆调用了哪个类/父类(super class)构造函数。

说明上述内容的示例:

class Foo {
final int x;
Foo(int x) {
this.x = x;
}
Foo() {
this.x = 1;
}
}

class Bar extends Foo {
Bar(int x) {
}
}

问题 - new Bar(10).x 的值是多少?

关于java - PMD CallSuperInConstructor 是什么原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54563817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com