Refleksja zamist wielkego if'a

0

Mam takiego dużego if'a:


if (A.class.getSimpleName().equals(e.getId())) {
            c= new A();
        } else if (B.class.getSimpleName().equals(e.getId())) {
            c= new B();
...

da się to może jakoś sprytnie zrobić refleksją ?
0

Da sie zrobić Class.forName() a potem newInstance() ale to co robisz to jest jakis WTF. Napisz co próbujesz osiągnąć bo ewidentnie robisz to bardzo bardzo źle...

0
if (A.class.getSimpleName().equals(e.getId())) {
            c= new A();
        } else if (B.class.getSimpleName().equals(e.getId())) {
            c= new B();

wyciagam z bazy obiekt e, w zaleznosci od id tworze odpowiedni obiekt c

0

No ale dlaczego w bazie po prostu nie trzymasz odpowiedniego obiektu? Bo ja rozumiem że używasz jakiegoś ORMa?

0

uzywam hibernate.

Ten obiekt c to nie zwykla klasa, ale taki procesor laczacy sie z roznymi restami itd.

0

To ja w ogóle nie rozumiem w czym rzecz. Skoro to jest zwykły obiekt to czemu w bazie trzymasz nazwę klasy zamiast obiektu jako takiego? o_O

0

jak mozna do bazy danych wrzucic obiekt caly, ktory posiada jakies metody (to jest proste POJO) ?

*to nie jest proste POJO

0

Ty sobie teraz żartujesz? A jaki to jest niby problem? Kto ci powiedział że Hibernate może wrzucać do bazy tylko obiekty bez metod? o_O Możesz wrzucać cokolwiek...

0

w sensie te processor nie zawiera niz sensownego do storowania w bazie danych.

Istnieje jakakolwiek mozliwość by zapisać w bazie danych za pomocą hibernate caly obiekt (majacy wiele prywatnych metod liczacych rozne rzeczy, laczacy sie z serwisami przez REST itd.), a nie zwykla klase-encje ?

w tutorialach sa zawsze takie proste pojo...

jak ma wygladac mapping, trzeba uczynic z procesora klase encje, czy nie trzeba ?

np.

mam jakas storwalna encje:

...
String a;

Procesor p;
...

czy ten procesor potrzebuje jakies dodatkowe adnotacje ?

0

No ten procesor też musi mieć @Entity i tyle. Ty chyba nie do końca rozumiesz czym są w javie klasy. W bazie nie zapisuje się żadnych metod bo nie ma takiej potrzeby. Metody są "przechowywane" w metaklasie globalnie dla wszystkich obiektów danej klasy.

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