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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> почему нет? operator overloading, Verbatim literals 
:(
    Опции темы
Platon
Дата 20.3.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



А я против макросов! На мой вгляд, они испортят изящность и полноту кода. Лично я решил эту проблему с помощью IDE.
PM MAIL ICQ   Вверх
w1nd
Дата 20.3.2008, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


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

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



Цитата(Platon @  20.3.2008,  16:59 Найти цитируемый пост)
А я против макросов! На мой вгляд, они испортят изящность и полноту кода.

Почему? Я вижу только удобства. Тем более, благодаря особенностям java, макросы получились бы только локальные (в пределах одного java-файла).

Цитата(Platon @  20.3.2008,  16:59 Найти цитируемый пост)
Лично я решил эту проблему с помощью IDE.

Расскажите, как. 

Это сообщение отредактировал(а) w1nd - 20.3.2008, 23:46


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
check
Дата 21.3.2008, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(powerOn @  14.3.2008,  09:32 Найти цитируемый пост)
плюс лично мне бы ещё хотелось увидеть параметры по умолчанию
А кто-нибудь знает,  почему в Java их нет?   Я был весьма обескуражен,  обнаружив это.  Мне это казалось само собой разумеющейся вещью.
PM MAIL   Вверх
w1nd
Дата 21.3.2008, 02:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


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

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



Цитата(check @  21.3.2008,  00:14 Найти цитируемый пост)
А кто-нибудь знает,  почему в Java их нет?

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

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

Это сообщение отредактировал(а) w1nd - 21.3.2008, 02:13


--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 21.3.2008, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Цитата(w1nd @  21.3.2008,  00:45 Найти цитируемый пост)
Расскажите, как. 

В IDEA есть Live Templates, так вот с их помощью можно ваш пример записать в шаблон
Код

swingInvokeLater

Его смысловую часть
Код

SwingUtilities.invokeLater(
    new Runnable() {
        public void run() {
            $END // по окончание развертки шаблона курсор окажется здесь
        }
    }
);

теперь можно писать "swingInvokeLater<Tab>", шаблон развернется. Вообще здесь есть несколько фишек для переменных $ARRAY, $METHOD, $CLASS, ... и много прочих любопытных переменных.

ЗЫ. Я не спорю, что IDE не дает полной свободы от нее, но я думаю в любой мировой IDE такие шаблоны присутствуют.

Добавлено через 2 минуты и 46 секунд
Цитата(w1nd @  21.3.2008,  03:12 Найти цитируемый пост)
Кстати, наличие возможности перегружать методы делает необходимость в параметрах по умолчанию весьма сомнительной.

Неправда, бывают случаи, когда мы просто по цепочке вызываем методы с большим количеством параметров, при этом добавляемые параметры - это некие константы, в таком случае я был бы не против записать все эти методы в 1 с парамерами по умолчанию.
PM MAIL ICQ   Вверх
check
Дата 21.3.2008, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(w1nd @  21.3.2008,  02:12 Найти цитируемый пост)
Кстати, наличие возможности перегружать методы делает необходимость в параметрах по умолчанию весьма сомнительной.
Необходимости нет, просто без них иногда бывает неудобно. 
Насчёт простоты согласен, перегрузка методов вместо параметров по-умолчанию часто
делает код легче для чтения, но уж очень много букв(при том ещё одних и тех же).

Но мотив, по которому эту фичу не включили в Java, понятен - одна из потенциальных возможностей запутать код.

 

PM MAIL   Вверх
w1nd
Дата 21.3.2008, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


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

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



Цитата(Platon @  21.3.2008,  07:41 Найти цитируемый пост)
В IDEA есть Live Templates, так вот с их помощью можно ваш пример записать в шаблон

А, вот как. Нет, это не то. Мне не мешает жить необходимость нарисовать эту конструкцию, мне мешает жить её наличие. Получается "дырявый", громоздкий код. 

Цитата(Platon @  21.3.2008,  07:41 Найти цитируемый пост)
Неправда, бывают случаи, когда мы просто по цепочке вызываем методы с большим количеством параметров, при этом добавляемые параметры - это некие константы, в таком случае я был бы не против записать все эти методы в 1 с парамерами по умолчанию.

А при вызове-то где разница? Мы вообще об одном и том же говорим?



--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
Platon
Дата 21.3.2008, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

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



Цитата(w1nd @  21.3.2008,  10:59 Найти цитируемый пост)
Мне не мешает жить необходимость нарисовать эту конструкцию, мне мешает жить её наличие.

Нууу, тут уж аргумент только в том, что хитрые программисты будут пользовать макросы архи неправильно, например, вы представляете себе циклы: for (int i = 0; i < a.length; i++) будет fi(i, a) {} может быть это и компактней и быстрей, но сразу то въехать в такой код слодновато будет, у каждого программиста свой набор макросов.


Цитата(w1nd @  21.3.2008,  10:59 Найти цитируемый пост)
А при вызове-то где разница?

Вот пример:
Код

public void add(Object o, int index) {/* code here */ }
public void add(Object o) {add(o, vector.size());}


А вот где можно было бы и подсократить
Код

public void build(int gridx, int gridy, int widthx, int widthy) {/* code here */}
public void build(int gridx, int gridy) {build(gridx, gridy, 1, 1);}
public void build() {build(0, 0, 1, 1);}

// меняем на 

public void build(int gridx = 0, int gridy = 0, int widthx = 1, int widthy = 1) {/* code here */}

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

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

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


 




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


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

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