Можно ли создать интерфейс, совместимый с конкретным скрытым интерфейсом API в Java? - PullRequest
2 голосов
/ 17 июня 2011

Я занимаюсь разработкой мобильных приложений (Android, J2ME) и задаюсь вопросом, возможны ли следующие шаги:

  1. Предположим, что приложение должно работать на платформе с поддержкой J2ME
  2. Платформа содержитнекоторые специфичные для платформы API, такие как NokiaUI на телефонах Nokia.Некоторые классы, включенные в API, реализуют интерфейсы, которые также включены в API.
  3. Производитель платформы предоставляет полный javadoc для API вместе с эмулятором и библиотеками пути к классам.Все определения интерфейсов, включенных в API, известны из-за их присутствия в javadoc.
  4. Создайте новый проект J2ME, а не включает необязательные пакеты, специфичные для платформы, поэтому импортирует из пакетовсделать невозможно.
  5. Выберите произвольный интерфейс (например, SomeInterface) из API, специфичного для платформы, и создайте его точное определение внутри проекта.Пакет для интерфейса должен быть назван точно так же, как выбранный пакет интерфейса.
  6. Предположим, что определение интерфейса:

    public interface SomeInterface
    {
        public void someMethod();
    }
    
  7. Выберите класс, которыйреализует интерфейс и создает его экземпляр с помощью метода newInstance ().

  8. Приведение экземпляра объекта к SomeInterface.
  9. Вызов someMethod () для интерфейса.

Это все возможно, или ClassCastException произойдет при приведении?

1 Ответ

4 голосов
/ 17 июня 2011

Программа установки Midp на некоторых телефонах (например, Nokia Symbian) не будет устанавливать приложения, классы которых имеют тот же пакет и имя класса, что и классы платформы.

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

Если вы намерены переопределить классы платформы, что невозможно в середине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...