43 lines
1004 B
Markdown
43 lines
1004 B
Markdown
# Аннотации (`05-reflect`)
|
|
|
|
## Формулировка задания
|
|
|
|
1. Реализовать аннотации:
|
|
|
|
- `@Ok`
|
|
- `@Ugly(int k default 5)`
|
|
|
|
2. Сделать класс Data, содержащий:
|
|
|
|
- Два поля, аннотированные `@Ok`
|
|
- Два поля, аннотированные `@Ugly`
|
|
- Одно неаннотированное поле
|
|
|
|
3. Реализовать вывод полей и их значний в JSON-файл. Если значние `@Ok` - выводим as-is. Если `@Ugly` - вместо значния подставляем случайное число от `-k` до `k`. Иначе - вывести предупреждение в логгер.
|
|
|
|
## Ожидаемый результат
|
|
|
|
### `out.json`
|
|
|
|
```
|
|
{
|
|
"ok1": "1",
|
|
"ok2": "2",
|
|
"ugly1": "-52",
|
|
"ugly2": "11",
|
|
}
|
|
```
|
|
|
|
### `stdout`
|
|
|
|
```
|
|
cant find anno for field 'etc', ignoring in file
|
|
```
|
|
|
|
## Запуск через Gradle
|
|
|
|
```sh
|
|
gradle run --console=plain
|
|
```
|
|
|