W CDI 1.2 istnieje sposób sprawdzenia, czy instancja klasy jest proxified? Potrzebuję tego, ponieważ muszę uzyskać nazwę oryginalnej klasy, a nie nazwę proxy.Sprawdzanie, czy klasa jest proxified z CDI 1.2
@Inject Bean bean;
public void sysout() {
// will print something like com.Bean$$Weld9239823
System.out.println(bean.getClass());
// I don't know how to check if the bean instance if a proxy or real class instance
}
Korzystanie z klas spoiny mogę zrobić to zadanie:
public void sysout() {
// will print true because this is a proxy
System.out.println(ProxyObject.class.isAssignableFrom(bean));
// will print com.Bean
System.out.println(((TargetInstanceProxy) bean).getTargetInstance());
}
W CDI 1.1 nie ma sposobu, aby to zrobić. Przeszukuję dokumentację CDI 1.2, jeśli została do tego dodana metoda, ale niczego nie znalazłem.
Więc ... Tęsknię za czymś i CDI 1.2 jest metoda uzyskania oryginalnej nazwy klasy i instancji? A jeśli nie, istnieje równina, aby dodać tę funkcję w pobliżu funkcji?
Jaka jest użyteczność przy ustalaniu klasy ziarna? Biorąc pod uwagę, że wstrzykujesz "fasolkę fasoli", wiesz już, że implementuje "fasolę" –
Czy wypróbowałeś to rozwiązanie? http://stackoverflow.com/a/7504552/2492784 – Sven