Как создать JSON в Spring Boot Thymeleaf?

Короткий ответ, вы не можете.

Длинный ответ:

Учитывая достаточную свободу действий API, которую вам нужно позвонить, вы можете настроить функцию, которую вы просто регистрируете, и звоните в качестве посредника. Обычно функции обратного вызова позволяют включать дополнительные данные, которые передаются этой функции вместе с информацией, сгенерированной объектом, вызывающим обратный вызов. Обычно он называется чем-то вроде «client_data» и имеет тип void * или long. Если это так, вы можете просто использовать эти данные, чтобы включить достаточную информацию для вызова функции, которую вы хотите, в нужном экземпляре, например, в режиме boost :: function & lt;>.

Обратите внимание, что этот посредник функция, которая делегирует вашу функцию-член, может быть статическим членом или свободной функцией.

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

  1. убедитесь, что вы никогда не используете более одного экземпляра в качестве своей целевой функции обратного вызова. Зарегистрируйте этот экземпляр с одноточечным или глобальным каким-либо видом, который отслеживает один экземпляр времени, на которое следует ссылаться на события этого типа.
  2. Зарегистрируйте столько экземпляров, сколько хотите, и просто убедитесь, что все они получают сообщение а затем либо с этим справиться, либо нет. Вы можете использовать своего рода «цепочку ответственности» здесь, где задана возможность иметь дело с событием, а затем возвращает что-то, позволяющее петле знать, следует ли продолжать или останавливаться.

В заключение, нет прямого способа сделать то, что вы хотите, но могут быть ответы на получение того, что вам нужно, если вы рассмотрите варианты. Любая функция, используемая в качестве обратного вызова, предоставляемая функции API C, должна ссылаться как указатель на функцию, а не на указатель на элемент любого рода ... и, к сожалению, не является также и функтором. C не знает, как справляться с этими вещами, поэтому ваш обратный вызов должен быть свободной функцией или статическим членом.

0
задан Habib 19 March 2019 в 07:36
поделиться