Как я могу переопределить класс в польских двоичных файлах J2ME?
-
04-07-2019 - |
Вопрос
Я использую компонент пользовательского интерфейса из J2ME Polish.Я нашел простую ошибку в коде и хочу быстро ее исправить, но не могу найти скрипты сборки в загружаемом пакете, хотя исходный код включен.
Проблему невозможно решить путем расширения класса, поскольку в нем участвуют члены с частным доступом.
Как мне это исправить?Должен ли я просто скомпилировать рассматриваемый класс с помощью Javac или попытаться найти сценарий сборки в их репозитории?
Решение
Для библиотеки пользовательского интерфейса J2MEPolish нет двоичного кода, поскольку эти классы также предварительно обрабатываются во время компиляции вашего приложения.Вот почему также нет сценария сборки для части пользовательского интерфейса J2MEPolish - полученный двоичный файл, если он скомпилируется, не будет иметь никакого смысла :)
Если вы используете этот класс пользовательского интерфейса напрямую (без польской магии), я бы предложил скопировать его в свой собственный проект, внести там изменения, и все будет в порядке.
Но есть небольшая проблема.Я не уверен на 100%, но процесс сборки польского языка должен быть следующим:сначала ваши классы подвергаются предварительной обработке, а затем будут предварительно обработаны классы польского языка.Если компонент пользовательского интерфейса, который вы скопировали в свой проект, останется в том же Java-пакете, может случиться так, что ваши изменения будут перезаписаны ошибочной польской реализацией.Вы можете проверить это, запустив приложение или просмотрев окончательный Java-код в каталоге сборки.
Если возникает проблема с перезаписью, у вас есть два варианта: переместить класс пользовательского интерфейса из вашего проекта в другой пакет (я на 99% уверен, что все будет в порядке, если вы используете его напрямую) или вам нужно изменить процесс сборки польского языка, чтобы он сначала предварительно обработает польские классы, и вы сможете перезаписать сделанные им изменения.
/ЯанусСийм
Другие советы
Я знаю, что на этот вопрос ответили и приняли, но более простым способом было бы использовать их встроенное свойство (для любого, приходящего сюда через волшебные поисковые системы)
polish.client.source=/projecthome/j2me-polish-source
, которая является просто копией их источников, упакованных вместе с установщиком. Вы можете скопировать это в свое собственное дерево исходников и, таким образом, иметь историю версий ваших изменений.
Несмотря на то, что метод JaanusSiim может работать, я бы не стал его рекомендовать, поскольку он вызывает путаницу, имея пакеты de.enough. ** в вашем собственном дереве исходников, но обычно я создаю src
для моего личного источника и src-j2mepolish
для их исходных файлов, это было ОЧЕНЬ ясно, что я добавил в стандартные версии.