sprawdzenie typu obiektu (Class)

0

Chciałbym sprawdzić typy kolumn bazy danych. W AbstractTableModel mam odpowiednią funkcję:

public Class getColumnClass(int column) { 
   String type; 
   Class c = null; 
   try { 
     type = rsmd.getColumnClassName(column+1); 
     c = Class.forName(type); 
     } 
     catch (Exception e) { 
       return super.getColumnClass(column); 
   } 
   return c; 

}

W tej pętli chciałbym sprawdzić czy kolumna jest typu Integer.Jednak typ.isInstance(sprInt) nie zwraca prawdy mimo, że kolumny sa tego typu. Jak powinienem zapisać ten warunek if aby zwracał prawdę gdy natrafiam na kolumnę typu Integer ?

for(int i=0;i<liczbaKol;i++){
     Class  typ=modelT.getColumnClass(i); 
        if(typ.isInstance(sprInt))
        System.out.println("jest");
        
    }

private Integer sprInt
0

albo

if (typ instanceof Integer){}

albo

if(a.getClass().isAssignableFrom(Integer.class)){}

pozdrawiam

0

Te funkcje można wywołać na jakimś obiekcie i sparwdzić jego typ a ja mam taką sytuację że funkcja Class getColumnClass(int column) sprawdza mi każdą kolumnę tabeli i zwraca obiekt Class i teraz ten obiekt , który zawiera w sobei typ obiektu chciałbym użyć w warunku logicznym i nie wiem jak zastosować do tego wyżej podane funkcje.

na razie poradziłem sobie w ten sposób lecz jest to trochę "głupia " metoda i cchiałbym zrobić to innaczej...

 Integer sprInt=1; //1) Tworzę zmienną  i inicjalizuje ją 
 Class intTyp=sprInt.getClass() // sprawdzam typ powyższej zmiennej żeby mieć wzorzec do  porównywania

 for(int i=0;i<liczbaKol;i++){
      Class  typ=modelT.getColumnClass(i);   
       
       if(typ==intTyp)
       {
           ...
        }           // funkcja getColumnClass(i) sprawdza typy elementów każdej kolumny a następnie porównuje zwócony obiekt z wcześniej utworzonym wzorcem

Czy ma ktoś pomysł jak dokonać porównania obiekow typu Class bez tworzenia dodatkowych zmiennych na wzorzec ??

0

Integer.class ?

0

O oto wlaśnie chodziło, dziękuję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1