Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> различные jre, использование классов из разных версий 
V
    Опции темы
skhilkov
Дата 27.12.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



У меня возник такой вопрос я проверяю версию jre и  в зависимости от этого включаю(не включаю) в свой код какие-то классы, которые, скажем, есть в 1.5 и нет в 1.4, например:
Код

if (version.compareToIgnoreCase("1.4") == 0)
{
...
}
if (version.compareToIgnoreCase("1.5") == 0)
{
  java.net.Proxy proxy = new java.net.Proxy(java.net.Proxy.Type.HTTP, new InetSocketAddress(strHttpProxyHost, DEFAULT_PROXY_PORT));
//этого класса нет в 1.4!
}

Так вот, вопрос - может ли это вызвать какие-либо проблемы (например на каких-либо jre, возможно под различными ОС)?
Я проверял на винде в версиях 1.4 и 1.5 - все работает. Но руководство относится к таким проверкам с недоверием...


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
y3u
Дата 27.12.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 5
Всего: 13



я тоже отношусь к таким проверкам с недоверием.
Зачем писать разный код, коорый делает одно и тоже?
Если надо поддерживать минорные версии, то надо изначально писать под минорные, т.к. в Java заявлена обратная совместимость и то, что работает под 1.4 будет также работать под 1.5 без дописывания


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
LSD
Дата 27.12.2006, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(skhilkov @  27.12.2006,  13:09 Найти цитируемый пост)
Так вот, вопрос - может ли это вызвать какие-либо проблемы (например на каких-либо jre, возможно под различными ОС)?

Лучше это делать через фабрику:
Код
public abstract class ConnectorFactory
{
  public static final int DIRECT = 0;
  public static final int HTTP = 0;
  public static final int SOCKS = 0;

  private static ConnectorFactory connectorFactory;

  public abstract URLConnection connect(URL url, int proxyType, String host, int port) throws IOException;

  public static ConnectorFactory getConnectorFactory()
  {
    if(connectorFactory == null)
    {
      if(isJDK15())
      {
        try
        {
          connectorFactory = (ConnectorFactory) Class.forName("com.mycompany.product.ConnectorFactory15").newInstance();
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
      else if(isJDK14())
      {
        try
        {
          connectorFactory = (ConnectorFactory) Class.forName("com.mycompany.product.ConnectorFactory14").newInstance();
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
    }
    return connectorFactory;
  }
}

Код
public class ConnectorFactory15 extends ConnectorFactory
{
  public URLConnection connect(URL url, int proxyType, String host, int port) throws IOException
  {
    Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(host, port));
    return url.openConnection(proxy);
  }
}

И меньше проблем с компиляцией будет.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
skhilkov
Дата 28.12.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



Цитата(y3u @  27.12.2006,  13:53 Найти цитируемый пост)
Если надо поддерживать минорные версии, то надо изначально писать под минорные, т.к. в Java заявлена обратная совместимость и то, что работает под 1.4 будет также работать под 1.5 без дописывания 

y3u, 
Просто если заявлено, что минимальная поддерживаемая версия - 1.4, то почему те, кто используют более поздними версиями не могут воспользоваться дополнительными преимуществами? Это даже своего рода стимул для обновления jre.



LSD, 
Спасибо, так и сделаю!

Это сообщение отредактировал(а) skhilkov - 28.12.2006, 14:49


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
y3u
Дата 28.12.2006, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 5
Всего: 13



Цитата(skhilkov @  28.12.2006,  14:49 Найти цитируемый пост)
Это даже своего рода стимул для обновления jre.


ИМХО

я с тобой не соглашусь smile Это с архитектурной точки зрения очень плохой подход. Весь проект дожлен быть выполнен в одной спецификации и по одним конвеншенсам smile да, можно начинать в процессе работы потихоньку мигрировать код на мажорные версии, но вот уж точно не такими способами smile Зачем тогда оставлять поддержку 1.4, спрашивается? smile ну напишите, что минимальная версия 1.5 тогда, а вот на эти свистопляски только жалко тратить времени и денег...


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
val
Дата 28.12.2006, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

Репутация: нет
Всего: 7



Мне тоже кажется, что делать в некотом смысле винегрет из кода смысла нет... Ведь написать код, который будет полностью удовлетворять стилям версий 1.4 и 1.5. одновременно вы не сможете, да и не надо это. Вот и получся винегрет из 1.4 и 1.5.  smile  Нитуда и нисюда... А сами понимаете, как-то некрасиво...


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
skhilkov
Дата 28.12.2006, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



y3u, 
видите ли, может с архитектурной точки зрения это не очень хорошо, но в моем случае следует учесть специфику продукта - это апплет. Пока еще не все юзеры перешли на мажорные версии, и вот им то уж точно нельзя заявлять о том, что их версия jre не годится(поэтому и нельзя заявить что минимальная версия 5.0), зато те, кто поставит более новую версию jre будут довольны(как мне кажется, таких все же больше)! 
С точки же зрения "винигрета" - то я не соглашусь с вами, по крайней мере тот пример, что привел LSD, очень даже логичен, построен на основе известного паттерна - где ж здесь винигрет? 


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
y3u
Дата 28.12.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: 5
Всего: 13



Цитата(skhilkov @  28.12.2006,  22:03 Найти цитируемый пост)
где ж здесь винигрет? 


винигирет будет, когда таких фектори будет много штук и они превратятся в стратегию smile

к тому же, уже официально самым последним JRE считается мустанговский. К тому же автоматическое обновление у большинства есть. К тому же для апплета можно указать минимальный JRE, чтобы пользователю предложили его загрузить автоматически... к чему карячиться? Я тоже работаю под 1,4 СДК, но JRE у меня стоит шестой давно...

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

Это сообщение отредактировал(а) y3u - 28.12.2006, 22:24


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
skhilkov
Дата 29.12.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 371
Регистрация: 11.4.2006
Где: TOMSK

Репутация: 2
Всего: 7



y3u, 

Цитата(y3u @  28.12.2006,  22:19 Найти цитируемый пост)
К тому же для апплета можно указать минимальный JRE, чтобы пользователю предложили его загрузить автоматически... к чему карячиться? 


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


--------------------
Кто понял жизнь, тот не спешит. 
PM MAIL   Вверх
LSD
Дата 29.12.2006, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Модератор: давайте не будем углубляться, в обсуждение того, какие пользователи плохие. Это не имеет никакого отношения к Java. Если хотите создайте тему в разных вопросах, и там занимайтесь орнитологией.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0775 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.