Ne znam koji komponentu nasledjuju klase LinijaHor i LinijaVert, pretpostavljam da je JLabel ili nešto slično.
Ako uvedeš apstraktnu klasu LinijaApstr koja nasleđuje komponentu koju si koristio i ima metodu oboji(boolean sig), npr.
Code:
public abstract class LinijaApstr extends JLabel {
public abstract void oboji(boolean sig);
}
i navedeš da tvoje klase LinijaHor i LinijaVert nasleđuju LinijaApstr onda ostatak koda može da izgleda ovako:
Code:
LinijaApstr[] sigIRIF23 = { sigIRIF23_1, sigIRIF23_2,
sigIRIF23_3, sigIRIF23_4,
sigIRIF23_5, sigIRIF23_6, sigIRIF23_7 };
akcija(sigIRIF23, TestiranjeBlokova.IRIF1_bits[0]);
gde je metoda akcija(LinijaApstr[], boolean) definisana na sledeći način:
Code:
private static void akcija(LinijaApstr[] la, boolean sig) {
for(int i=0; i < la.length; i++)
la[i].oboji(sig);
}
Na taj način bi upotrebom polimorfizma izbegao nepotrebno korišćenje instanceof operatora, kastovanje i grananje pomoću if naredbe.
Vidim da si se na kraju ipak odlučio za korišćenje niza, zbog čega si odustao od ideje da pristupaš instancama preko imena promenljive?