Учитывая Java-приложение, которое было написано с учетом производительности (т. е. методы намеренно не объявлены как «strictfp» в исходном коде), возможно ли разрешить пользователям запускать все приложение в режиме strictfp?
Похоже, что грубым подходом было бы просто добавить атрибут «strictfp» ко всем методам всех классов, используя собственный загрузчик классов, написанный с использованием javassist. Это будет похоже на:
http://www.verious.com/qa/no-strictfp-in-scala-workarounds/
Однако загрузчику класса потребуется добавить атрибут strictpf ко всем методам класса все в приложении, включая закрытые. (Просто приложение слишком большое и сложное, чтобы явно перечислить все возможные методы, для которых может потребоваться атрибут strictfp.)
API отражения в javassist, похоже, не поддерживает перечисление частных методов:
http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/html/javassist/CtClass.html#getMethods()
Возможно ли то, что я хочу сделать в javassist (или вообще с помощью пользовательского загрузчика классов)?
getDeclaredBehaviors()
? - person Antimony   schedule 27.06.2013