PMD定义规则CallSuperInConstructor。在编译器不需要的情况下,向构造函数中的SELECT p.post_title, p.id, pm.meta_value
FROM wp_postmeta pm JOIN
wp_posts p
ON pm.post_id = p.id
WHERE p.post_type = 'Product' AND
pm.meta_key = '_regular_price' AND
pm.meta_value = (SELECT MIN(pm2.meta_value)
FROM wp_postmeta pm2 JOIN
wp_posts p2
ON pm2.post_id = p2.id
WHERE p2.post_title = p.post_title
)
ORDER BY p.post_title;
添加无参数调用的目的是什么?
我意识到我可以禁用该规则或使用super()
使每个类中的规则保持沉默。
This question讨论了为什么应该在构造函数中调用@SuppressWarnings
的原因。我的问题是为什么在编译器不需要时会添加无参数super(...)
调用。
答案 0 :(得分:2)
如果你是上课
Object
类,该类具有许多重载的构造函数然后,当您显式调用super()
时,可以避免混淆哪个类/超类构造函数被调用。
说明上述内容的示例:
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
的值是什么?