не могу понять, как заставить SWIG /Java заставить прокси-класс реализовать интерфейс

Я использую SWIG для экспорта класса c ++ в Java, но столкнулся с проблемой, пытаясь заставить прокси-объект реализовать интерфейс.Я изучил документацию SWIG и обнаружил, что вы можете использовать "% pragma (java) jniclassinterfaces = x", чтобы класс JNI реализовывал данный интерфейс, и использовать "% pragma (java) moduleinterfaces = x", чтобы модуль реализовывал любой данный интерфейс, но нет соответствующей прагмы для фактического объекта прокси.Я бы предпочел, чтобы SWIG генерировал код «реализует X», так как попытка добавить эту реализацию позже оказывается сложной.Например, если я пытаюсь создать подкласс SWIG-прокси и затем реализовать интерфейс, я сталкиваюсь с проблемами, потому что я также использую дженерики:Так что-то вроде этого не получается:потому что это потребует приведения родителя к дочернему классу.Единственный другой способ обойти эту проблему - создать класс-оболочку или использовать конструктор копирования.И то, и другое кажется неэффективным, поскольку их цель - реализовать единый интерфейс.
4 голоса | спросил Abe Schneider 29 MarpmTue, 29 Mar 2011 23:20:52 +04002011-03-29T23:20:52+04:0011 2011, 23:20:52

1 ответ


0
Это должно быть обработано с помощью механизма typemaps .Следующий код:Устанавливает базы и интерфейсы для ---- +: = 1 =: + ---- , вот так:в сгенерированном классе прокси Java.
ответил Flexo 20 72011vEurope/Moscow11bEurope/MoscowSun, 20 Nov 2011 23:18:47 +0400 2011, 23:18:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132