validação PMD

2 respostas
arnishi

Pessoal

Alguém sabe o que tem de errado com a seguinte validação que o PMD dispara?

overridable method called during object construction

2 Respostas

E

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”.

E
Criado 20 de agosto de 2012
Ultima resposta 20 de ago. de 2012
Respostas 2
Participantes 2