2014.06.11 09:19
ludzie od swinga w netbeansie nie czytali "Java concurrency in practice"
Jak w netbeansach zrobię new -> jpanel form, to generuje mi się taka klasa:
public class MojPanel extends javax.swing.JPanel {
private final List osoby;
MojPanel(List resultList) {
initComponents();
}
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
(...)
Ej, no to to jest właśnie to, co Brian Goetz w "Java concurrency in practice" kazał, żeby tak nie pisać. Bo jeśli w przyszłości w konstruktorze dopiszę jeszcze jakiś kod po wywołaniu initComponents (a wolno mi), a potem ktoś zadziedziczy po klasie MojPanel (a wolno mu, nie jest finalna) i przykryje metodę initComponents (a wolno mu, nie jest finalna), i w niej sięgnie do this (a wolno mu), to zobaczy obiekt, którego inicjalizacja jeszcze się nie zakończyła. Co przy odrobinie pecha może powodować różne dziwne problemy.
komentarze:
powrót na stronę główną
RSS