2014-01-02 3 views
1

Я не в состоянии получить точное имя классане в состоянии получить точное имя класса

Мой код:

venue.getClass.getName(); 

Это дает выход как:

com.venue.Venue_java_assist17_ 

I чтобы получить выход, например точный classname: com.venue.Venue

+4

Похоже ваш экземпляр прокси. –

+1

Вы используете Spring? Hiberate? Что-то украшает ваши классы [Javassist] (http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/). –

+0

да точно..Это проблема с прокси .. Как я могу это решить? – Naresh

ответ

1

Вы не можете напрямую получить имя класса, так как это прокси. Единственный способ, чтобы получить имя реального класса является раздеться суффикса, например .:

String cn = "com.venue.Venue_java_assist17_"; 
System.out.println(cn.substring(0, cn.indexOf('_', cn.lastIndexOf('.')))); 

Если вы используете спящий режим, вы можете использовать:

HibernateProxyHelper.getClassWithoutInitializingProxy(venue); 
Смежные вопросы