In CDI 1.2 gibt es eine Möglichkeit, zu überprüfen, ob eine Klasseninstanz gekürzt wird? Ich brauche das, weil ich den Namen der ursprünglichen Klasse, nicht den Proxy-Namen erhalten muss.Überprüfen, ob Klasse mit CDI 1.2 spezifiziert ist
@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
}
Weld Klassen ich diesen Job tun kann:
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());
}
In CDI 1.1 gibt es keine Methode, dies zu tun. Ich suche in CDI 1.2 Dokumente, wenn eine Methode dazu hinzugefügt wurde, aber ich habe nichts gefunden.
Also ... ich vermisse etwas und CDI 1.2 gibt es eine Methode, um ursprünglichen Klassennamen und Instanz zu bekommen? Oder wenn nicht, gibt es eine Ebene, um diese Funktion in Near Feature hinzuzufügen?
Was ist der Anwendungsfall zum Ermitteln der Klasse der Bohne? Wenn man bedenkt, dass man 'Bohne 'injiziert, weiß man bereits, dass es' Bean' implementiert. –
Haben Sie diese Lösung ausprobiert? http://stackoverflow.com/a/7504552/2492784 – Sven