| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Аннотации для тупых |
| Автор: RockClimber 10.12.2009, 13:33 |
| Я начну издалека, а потому надеюсь на ваше терпение... В java есть JUnit - средство для unit-тестирования (кто не знает, что это такое, не обращайте внимания, в данном случае это не важно). Там есть несколько классов. Некоторое время назад кто-то из участников проекта freepascal "перевел" Junit на паскаль и назвал это fpcunit. Но это было давно и fpcunit представляет собой клон какой-то сильно устаревшей версии JUnit. О JUnit я узнал от жены, которая работает тестировщиком и unit-тестированием тоже занимается. Она даже когда-то давно немного изучала java. Посмотрев на fpcunit, она сказала, что он скопирован с устаревшей версии JUnit и что она может мне помочь с переводом на fpc, только проблема оказалась в том, что в новых версиях JUnit вовсю используются аннотации, а в паскале такого просто нет. Она целый час мне объясняла, что такое аннотации, но я не понял абсолютно ничего. Либо она не так объясняла, либо я совсем тупой стал на старости лет. В гугле меня конечно не забанили, но все примеры использования аннотаций для объяснения используют код на java (кто бы мог подумать...), а я в java ни в зуб ногой и уже со второй строчки я перестаю понимать, что там происходит. Поэтому вопрос - может кто-нибудь на пальцах объяснить непосвященному, что это такое и как работает? Например, "вот такую-то задачу с помощью аннотациq можно решить так, а без них - только так, а вот такую вообще никак". А я уж потом как-нибудь соображу, как это лучше в fpc освоить. |
| Автор: fixxer 10.12.2009, 14:23 |
| А что не устраивает в существующей версии? может использовать ее и не париться? Просто если язык не поддерживает метаинформацию, то повторить будет не так просто. Если говорить в простоте, аннотация это метаинформация проставляемая на объектах языка (классах, полях, методах) которая может быть считана другим классом или инструментом. Например, в старых версиях JUnit методы тестового класса должны были нахываться testXXX, чтобы JUnit знал что запускать. Сейчас метод может называться как угодно, достаточно пометить его аннотацией @Test и по ней JUnit определит, что это тестовый метод. Добавлено через 7 минут и 22 секунды насколько я знаю в Delphi 2010 появились кастомные аттрибуты. Это аналог аннотаций в Java. Если fpc поддерживает этот диалект object pascal, то все есть из коробки. |
| Автор: RockClimber 11.12.2009, 12:45 |
| Про custom attributes почитал, спасибо за наводку. Теперь пойду разбираться, что из этого есть в fpc. В текущей версии все устраивает. Попробую разобраться, что появилось нового - ведь если оно появляется, значит, кому-нибудь нужно. А значит, и мне тоже может пригодиться. |
| Автор: LSD 11.12.2009, 14:09 | ||
Аннотации в Java бывают 3-х retention-ов: существую только на уровне исходников, на уровне классов и обрабатываются на уровне JVM, на уровне классов и доступны всем. Так вот аннотации на уровне исходников это аналог директив компилятора
Хотя в JUnit используется другие типы. |