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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> почему в ява нет анотаций внутри методов? дилемные вопросы о архитектуре 
:(
    Опции темы
polosatij
  Дата 27.9.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

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



пишу JSF, и пришёл на мысль, что ...


сравните два блока

Код

            if (mSelectedNOF.equals(notamAddress.getNOF())
                    && ValueChecker.isNotNull(notamAddress.getAddress())) {
                mSeriesList.add(notamAddress.getSeries());
            }


Код

            @NotNull(notamAddress.getAddress())
            @Equals(mSelectedNOF, notamAddress.getNOF())
            mSeriesList.add(notamAddress.getSeries());


на мой взгляд, второй проще читать, чем первый. почему бы не ввести в ява анотации внутри метода?  smile 
можно конечно написать метод, что сделает это, но тогда теряется обзорность и легко заблудится.. smile


--------------------
PM   Вверх
powerOn
Дата 27.9.2008, 14:41 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Аннотации по своей философии не предназначены для описываемых вами целей. Даже сам механизм их обработки в принципе не соответствует таким задачам. Это не методы, они не выполнятся в рантайме. Это просто мета информация. Попробуйте представить, как и кем такие аннотации должны обрабатываться (и не будут ли они работать как методы).




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

PM MAIL   Вверх
polosatij
Дата 27.9.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

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



Цитата(powerOn @  27.9.2008,  14:41 Найти цитируемый пост)
Это не методы, они не выполнятся в рантайме.

Цитата(powerOn @  27.9.2008,  14:41 Найти цитируемый пост)
Это просто мета информация. 


компилятор мог бы сделать if блок из данной серии анотаций  smile

Добавлено через 6 минут и 1 секунду
Цитата(powerOn @  27.9.2008,  14:41 Найти цитируемый пост)
Это не методы, они не выполнятся в рантайме.


как это не выполнятся? в рантайме можно читать анотации и делать что-нибудь соответствующим образом  smile 


--------------------
PM   Вверх
Samotnik
Дата 27.9.2008, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



polosatij,  а  не проще спросить у разработчиков  (мыло, форум, личка)???
При чем тут форумчане Винграда ?  Вроде никто с  САНовцами не знаком.  smile 
PM MAIL   Вверх
powerOn
Дата 27.9.2008, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(polosatij @  27.9.2008,  15:47 Найти цитируемый пост)
как это не выполнятся? в рантайме можно читать анотации и делать что-нибудь соответствующим образом

Операции производятся над ними, сами аннотации ничего не делают.

Цитата(polosatij @  27.9.2008,  15:47 Найти цитируемый пост)
компилятор мог бы сделать if блок из данной серии анотаций 

это мне напоминает макросы в С++.



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

PM MAIL   Вверх
w1nd
Дата 27.9.2008, 16:50 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(polosatij @  27.9.2008,  13:58 Найти цитируемый пост)
на мой взгляд, второй проще читать, чем первый.

Проще? Что описано во втором примере - вообще непонятно.


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


Эксперт
***


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

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



polosatij, вы хотите предложить свой язык программирования?
PM MAIL   Вверх
polosatij
Дата 28.9.2008, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

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



Цитата(dorogoyIV @  28.9.2008,  06:09 Найти цитируемый пост)
polosatij, вы хотите предложить свой язык программирования? 


нет, их навалом уже.. хотелось бы сделать всё как можно проще..  smile

Добавлено через 8 минут и 19 секунд
Цитата(w1nd @  27.9.2008,  16:50 Найти цитируемый пост)
Проще? Что описано во втором примере - вообще непонятно. 


мысль проста.. сделать проще оператор if  smile 


--------------------
PM   Вверх
Старовъръ
Дата 28.9.2008, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



По-моему проще сделать для этого метод, если такая операция часто встречается. Аннотации на каждый случай жизни все равно делать же не будешь.
PM MAIL WWW   Вверх
alexadr
Дата 28.9.2008, 15:10 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(polosatij @  27.9.2008,  13:58 Найти цитируемый пост)
сравните два блока

Код

            if (mSelectedNOF.equals(notamAddress.getNOF())
                    && ValueChecker.isNotNull(notamAddress.getAddress())) {
                mSeriesList.add(notamAddress.getSeries());
            }



Код

            @NotNull(notamAddress.getAddress())
            @Equals(mSelectedNOF, notamAddress.getNOF())
            mSeriesList.add(notamAddress.getSeries());




Для простого советского программиста 1-ый блок адназначна проще.

А вообще на эту тему есть неплохой пример в статьях(книгах) про антипатерны. 
Есть такой антипатерн, при котором разработчик обязательно хочет применить какой-то патерн там где он не нужен.
PM MAIL   Вверх
polosatij
Дата 28.9.2008, 23:10 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

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



Цитата(Старовъръ @  28.9.2008,  14:50 Найти цитируемый пост)
По-моему проще сделать для этого метод, если такая операция часто встречается.


в if-е постоянно разные значения.. и нет смысла выделять всё в ещё один метод..


Цитата(alexadr @  28.9.2008,  15:10 Найти цитируемый пост)
Для простого советского программиста 1-ый блок адназначна проще.


значит, я не простой и не советский программист.. у меня уже рябит в глазах от постоянных if else


Цитата(alexadr @  28.9.2008,  15:10 Найти цитируемый пост)
Есть такой антипатерн, при котором разработчик обязательно хочет применить какой-то патерн там где он не нужен. 


я не вижу тут никакого антипаттерна, мне кажется что это проще.. не больше, не меньше.. 



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


software saboteur
****


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

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



Цитата(polosatij @  29.9.2008,  00:10 Найти цитируемый пост)
я не вижу тут никакого антипаттерна, мне кажется что это проще.. не больше, не меньше.. 


Цитата(ДМБ)

- Видишь суслика? 
- Нет. 
- И я не вижу. А он есть!


И напрасно вы его не видите. Лопата что бы копать, а топор что бы рубить. Не наоборот.






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

PM MAIL   Вверх
LSD
Дата 29.9.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Аннотации внутри методов - есть.
Код

import java.util.*;

public class Test
{
  public static void main(String[] args) throws Exception
  {
    System.out.println("Я делаю особую, аннотационную магию ;)");
    @SuppressWarnings("unchecked")
    List<String> list = new ArrayList();
    System.out.println("list = " + list);
  }
}



--------------------
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   Вверх
ivg
Дата 29.9.2008, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


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

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



Цитата(LSD @  29.9.2008,  16:12 Найти цитируемый пост)
Аннотации внутри методов - есть

А если точнее, то внутри метода аннотации могут быть объявлены только для локальных переменных. Автору топика "помогли бы" аннотации для участков кода. Но увы.
PM MAIL   Вверх
Samotnik
Дата 29.9.2008, 14:08 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



LSD,   smile  smile 
 smile   Молодец, пришел и все, что тут написанно выше перечеркнул   smile 

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

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

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


 




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


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

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