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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> if else 2 switch 
V
    Опции темы
kren
Дата 8.11.2006, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день,

есть у меня метод:

Код

    protected Image iconChoose(String fileType) {

        Image typeIcon = null;

        if ("mp3".equals(fileType) {

            typeIcon = iconCache.stockImages[iconCache.typeAudio];

        } else if ("doc".equals(fileType)) {

            typeIcon = iconCache.stockImages[iconCache.typeDoc];

         } else if ....
                    ....
         return typeIcon;
         }


Tак вот, этих иф елсов скажем достаточно много и метод получается довольно громозтким и сложным. 
Я тут думал, как бы это переделать в switch c case'aми. Но вот в switch параметры мозно задавать только цифрами.
Так вот, что бы вы посоветовали? 
PM MAIL   Вверх
y3u
Дата 8.11.2006, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



проще всего это дело в хешмап распихать и сразу доставать по расширению нужный икон


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


Эксперт
****


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

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



учитывая схожесть не только условий (отличие только в строке), но и действий внутри блока, можно было бы каким-то образом задать соответствие между строкой и тем, что передаётся в квадратных скобках
в C++ для таких вещей можно использовать std::map
в Java тоже, наверняка, такое есть


--------------------
qqq
PM WWW   Вверх
powerOn
Дата 8.11.2006, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

Репутация: 47
Всего: 159



Создай HashMap в котором ключи строки "mp3", "doc" ... а значения iconCache.typeAudio, iconCache.typeDoc. Потом из него дергай нужные значение, что то в стиле:

Код

HashMap hm = new HashMap();

hm.put("doc", iconCache.typeDoc);
hm.put("mp3", iconCache.typeAudio);
....

if (hm.containsKey(fileType) {
iconCache.stockImages[ hm.get(fileType) ];
}



Добавлено @ 21:36 
опередили....  smile  smile 

Это сообщение отредактировал(а) powerOn - 8.11.2006, 21:35


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
kren
Дата 8.11.2006, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасиба огромное, все работает, проблема решена smile
PM MAIL   Вверх
bytes
Дата 8.11.2006, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
Но вот в switch параметры мозно задавать только цифрами.

не только...
interface, enum
--------------------
?==! or !==?
PM MAIL ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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