Как я могу переопределить класс в двоичных файлах J2ME? - PullRequest
0 голосов
/ 26 октября 2008

Я использую компонент пользовательского интерфейса из польского J2ME. Я нашел в коде простую ошибку и хочу быстро ее исправить, но не могу найти никаких скриптов сборки в пакете загрузки, хотя исходный код включен.

Проблема не может быть решена путем расширения класса, поскольку она включает членов с частным доступом

Как мне исправить это? Должен ли я просто скомпилировать рассматриваемый класс с помощью Javac или попытаться найти скрипт сборки в их репозитории?

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

Я знаю, что на этот вопрос ответили и приняли, но более простым способом было бы использовать их встроенное свойство (для любого, приходящего сюда через волшебные поисковые системы)

polish.client.source=/projecthome/j2me-polish-source

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

Хотя метод JaanusSiim может работать, я бы не советовал его, так как путаница с пакетами de.enough. ** в вашем собственном дереве исходных кодов приводит к путанице, но обычно я создаю src для моего личного источника и src-j2mepolish для их исходных файлов. это было ОЧЕНЬ ясно, что я добавил к стандартным версиям.

1 голос
/ 26 октября 2008

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

Если вы используете этот класс пользовательского интерфейса напрямую (польская магия не задействована), я бы предложил скопировать его в ваш собственный проект, внести в него изменения, и у вас все будет хорошо.

Но есть небольшая проблема. Я не уверен на 100%, но польский процесс сборки должен быть следующим: сначала ваши классы предварительно обрабатываются, а затем польские классы будут предварительно обработаны. Если компонент пользовательского интерфейса, который вы скопировали в свой проект, останется в том же пакете Java, может случиться так, что ваши изменения будут перезаписаны ошибочной польской реализацией. Вы можете проверить это, запустив приложение или посмотрев окончательный код Java в каталоге сборки.

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

/ JaanusSiim

...