Можно ли определить, является ли класс прокси (динамическим, cglib или другим)?
Пусть классы A и B реализуют общий интерфейс I. Затем мне нужно определить процедуру classEquals подписи
public boolean classEquals(Class<? extends I> a, Class<? extends I> b);
таким образом, что он оценивается как true, только если a.equals(b) или Proxy(a).equals(b), где Proxy(a) обозначает динамический прокси типа A (динамический, cglib или другой).
С помощью @Jigar Joshi пока это выглядит так:
public boolean classEquals(Class a, Class b) {
if (Proxy.isProxyClass(a)) {
return classEquals(a.getSuperclass(), b);
}
return a.equals(b);
}
Проблема заключается в том, что он не обнаруживает, например, прокси CGLIB.
testProxy(A.class)возвращает прокси-объект для A. Каким должен быть результатtest(new A(), A.class)? - person Cephalopod   schedule 21.09.2011instanceof? - person Cephalopod   schedule 21.09.2011Classes, а не сObjects, что, к сожалению, не позволяет мне использоватьinstanceof- person Johan Sjöberg   schedule 21.09.2011Proxy.isProxyClassв своих собственных пакетах. Это может обнаружить их. - person A.H.   schedule 21.09.2011