J2Objc — игнорирование аннотаций при компиляции кода

У меня есть набор java-бинов, аннотированных @XmlRootElement из javax.xml.bind. При попытке импортировать файлы .h в мой проект XCode я получаю сообщение об ошибке «файл javax/xml/bind/annotation/XmlTransient.h» не найден. Предпочтительно я хотел бы игнорировать эти аннотации, потому что они мне не нужны в моей цели Код C, но если есть другое решение, я бы приветствовал его!

Благодарю вас!


person Andrei F    schedule 23.07.2018    source источник


Ответы (1)


Вам нужно будет перевести эти типы аннотаций и связать их со своим приложением, так как XmlTransient имеет сохранение во время выполнения. j2objc игнорирует аннотации с сохранением SOURCE или CLASS, но должен переводить аннотации RUNTIME, поскольку компилятор не может узнать, нужно ли вашему приложению (или зависимости библиотеки) ссылаться на него во время выполнения.

Как бы то ни было, вы должны с подозрением относиться к любому использованию классов JavaEE в мобильном приложении. Классы JavaEE предназначены для серверной среды, и закрытие всех зависимых от них классов может занимать больше памяти, чем требуется для приложения Android или iOS. Тот факт, что некоторый код Java можно использовать в мобильном приложении, не означает, что он обязательно является хорошим выбором для этой среды.

person tball    schedule 24.07.2018