2012-02-06 3 views
1

В настоящее время я использую Java Reflection для достижения отражающего свойства. Я понимаю, что есть много инструментов для достижения свойства отражения. Один из них: Джавассист, который наряду с поведенческим отражением обеспечивает структурное отражение. Тем не менее, я обеспокоен только поведением.Отражение Java Vs Javassist

Мой вопрос: какой из существующих библиотек (отражение Java/Javassist/любой другой) был бы хорош в достижении поведенческого отражения? Меня беспокоит только производительность (т. Е. Скорость, с которой они действуют).

Заранее спасибо.

+4

бы вы дайте нам знать, что такое «bahavioural отражение» и «структурное отражение» – Bozho

+0

Я просто хочу, чтобы осуществить самоанализ. Я не хочу изменять класс во время выполнения. – Ashok

ответ

1

Если вам просто нужна интроспекция, используйте java.lang.reflect или java.beans. Кроме того, вы можете использовать некоторые более высокоуровневые утилиты, такие как commons-beanutils.

+0

Спасибо Божо. Я только начинаю использовать рефлексию. Однако из нескольких тем форума, которые я читал, я понимаю, что «размышление» происходит медленно. Я искал альтернативные инструменты, и Джавассист был одним из них. Чтобы понять разницу (с точки зрения производительности) между размышлением и джавассистом, я поставил этот вопрос. Спасибо – Ashok

+0

Отражение не _that_ slow, и если вы выполните его только один раз (и кешируйте результат), он будет быстрым. – Bozho

+0

Спасибо Божо. Возможно, я ошибаюсь. Но меня больше интересует разница в производительности между java.lang.reflect и javassist. – Ashok

0

Проверьте эти статьи:

https://community.jboss.org/thread/94356

http://www.ibm.com/developerworks/library/j-dyn0610/

Javassist гораздо быстрее, если ваш код нуждается в высокой пропускной способности для доступа к методам и поля, и время загрузки не имеет решающего значения для вас.

Если вы используете JDK1.7, вы можете воспользоваться InvokeDynamic с почти той же производительностью, что и вызов метода напрямую, поэтому нет необходимости в javassist.


 Смежные вопросы

  • Нет связанных вопросов^_^