Здравствуйте, есть ли способ узнать имя класса вызывающей функции, особенно для приложения Java-GWT?Как узнать класс вызывающего абонента функции
ответ
Thread.currentThread
не поддерживается в GWT (помните, что Java-код компилируется в JavaScript), так что это возможно дубликат:
How do you find out the caller function in JavaScript?
В GWT вы бы просто написать JSNI обертку:
public static native void whosMyCaller() /*-{
$wnd.alert(arguments.callee.caller.toString());
}-*/;
В GWT это невозможно, так как в режиме производства код сильно оптимизирован с помощью накладки и удаления недостижимого кода. Например. в компилированном режиме большинство функций не принадлежит ни одному классу, поскольку GWT считал избыточность определения класса. Теоретически можно найти класс вызывающего абонента (если вы попытаетесь проанализировать отчет компиляции или через JSNI), но из-за оптимизации встраивания вы получите много странных результатов (например, даже если вы работаете, вызывается только в некоторых конкретный класс, в скомпилированном режиме вы можете обнаружить, что он вызван непосредственно из точки входа onLoad)
В байт-коде можно? – xybrek
Вы менянормальный java? это возможно через Thread.currentThread(). getStackTrace(), как говорили другие люди. В DevMode это также возможно, но я не уверен, разрешен ли класс Thread в DevMode. Вы можете попытаться создать Exceptino и проанализировать его стек. – jusio
- 1. Как узнать вызывающего абонента функции
- 2. Как узнать имя объекта вызывающего абонента во время функции?
- 3. Javascript Родители функции вызывающего абонента
- 4. Java: Как получить имя функции вызывающего абонента
- 5. имя вызывающего абонента функции в анонимной функции
- 6. Как назвать имя вызывающего абонента, а не номер вызывающего абонента?
- 7. Зная класс вызывающего абонента с AspectJ
- 8. уведомить класс вызывающего абонента, что-то произошло
- 9. Как определить вызывающего абонента в haxe?
- 10. Nodejs: получить имя функции вызывающего абонента
- 11. jQuery getJSON - Возвращаемое значение функции вызывающего абонента
- 12. PlayFramework Запись имени вызывающего вызывающего абонента
- 13. Доступ к внешним аргументам функции вызывающего абонента
- 14. Поиск функции вызывающего абонента в C
- 15. Проверка безопасности в функции вызывающего абонента
- 16. Функции вызова вызывающего абонента без видимых причин
- 17. Получить идентификатор вызывающего абонента
- 18. Как вернуть вызывающего абонента setOnClickListener?
- 19. Plivo - Идентификатор вызывающего абонента
- 20. Обнаружение вызывающего абонента
- 21. Получить имя метода вызывающего абонента
- 22. ShowDialog без блокировки вызывающего абонента
- 23. Получение имени функции вызывающего абонента внутри другой функции в Python?
- 24. Как сделать функцию класса вызова вызывающего абонента
- 25. Как найти функцию вызывающего абонента в angularjs
- 26. Получить имя метода вызывающего абонента
- 27. Как я могу найти вызывающего абонента из внутренней функции?
- 28. Как напечатать имя объекта вызывающего абонента внутри функции члена класса?
- 29. Как напечатать имя функции вызывающего абонента в перегруженном новом операторе?
- 30. Как получить элемент вызывающего абонента в функции href javascript?
Возможный дубликат [Java: найти класс вызывающего абонента] (http://stackoverflow.com/questions/2887607/java-find- caller-class) –
Отражение и связанные с ним API не эмулируются GWT. Вам нужно найти другой способ выполнить то, что вы хотите. – Strelok