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:

ksywa:

tu wpisz cyfrę cztery: (tu wpisz cyfrę cztery: (to takie zabezpieczenie antyspamowe))

komentarze wulgarne albo co mi się nie spodobają będę kasował


powrót na stronę główną

RSS