Pessoal
Alguém sabe o que tem de errado com a seguinte validação que o PMD dispara?
overridable method called during object construction
Pessoal
Alguém sabe o que tem de errado com a seguinte validação que o PMD dispara?
overridable method called during object construction
Digamos que você tenha uma classe assim:
public class X {
public X() {
initComponents();
}
public void initComponents() {
System.out.println ("xxx");
}
}
e na classe Y, derivada de X, você tenha o seguinte código:
public class Y extends X {
public Y() {
super();
}
public void initComponents() {
System.out.println ("yyy");
}
}
O que será impresso?
Eu sei, o comportamento esperado (imprimir “yyy”) está OK, mas é estranho, porque quem testou o construtor de X testou com o método initComponents de X, não o de Y.
Há alguns casos em que esse comportamento pode não ser o desejado, e para evitar tais problemas há esse “warning”.