|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
Допустим я делаю свой тестовый фреймворк, и хочу чтобы все статические функции помеченные аннотацией @Test можно было вызвать когда нужно. Есть 2 файла, в одном метод помеченный @Test в другом main() {} Какой код нужно добавить в main() чтобы он нашел и вызвал все статические функции помеченные @Test по всему проекту? (Я знаю про тест-юнит и т.п. у меня в реальности не тест нужно сделать, я просто как пример тест использую) /projects/p1/src/some/thing.kt Код: java 1. 2. 3. 4. 5. 6. 7. 8.
/projects/p1/src/run.kt Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 20:50 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
Ну ... после компилляции у тебя в каталоге target/ или build/ лежат все classes. Можешь из загрузить ClassLoader черезв Class.forName и через рефлексию обойти все методы и те у которых будет тег @Test вызвать опять-же через рефлексию. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 23:08 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
Хмм, вобщем я так понял никто так не делает? Я тогда просто лучше создам отдельный файл all_test_methods.kt Код: java 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 23:17 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
private И здесь вручную пропишу вызовы все методы из всех классов, их не так много Вот слабак. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 23:18 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
Т.е. Код: java 1. 2. 3. 4. 5.
Охрененно удобно аспектное программирование в жаве сделано получается.... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.08.2020, 23:18 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
private, А где в Java/Kotlin декларировалось АОП? Есть AOP фреймворки. Например AspectJ. А так AOP обычно ходят рядом с DI-фреймворками. Ну если, хотите, можете написать свой DI-фреймворк. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 07:13 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
По моему у автора - свое понимание аоп. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2020, 08:49 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
Автор использует свой генератор документации, который работает с любыми языками, и например кусочек документации для метода который считает аппроксимацию, из проекта на TypeScript Кусочек кода для документации Часть проекта будет сделана на Kotlin, и я хотел-бы иметь возможность документировать код на Kotlin, похожим образом, с картинками, формулами, форматированием. И чтобы он был обьединен в единой документации с другими модулями. И для этого мне нужно найти все кусочки кода в проекте которые будут помечены @Doc, как бы это ни называлось в терминах Java AOP или еще как-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 18:00 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
Не перекликается ли это с литературным кодом? https://www.sql.ru/forum/1326829/subbotniy-literaturnyy-kod ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 19:28 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
Литературный код сложно сделать, у меня задача проще. Собрать из разных файлов и модулей проекта (он на нескольких языках) по кусочку комментарии и сгенерировать статическую документацию. В котлине нельзя в теле файла вызвать метод, приходится в двойной метод заворачивать. Код: java 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 20:07 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
Тут мне кажется надо посмотреть в цели и смыслы. И какую цену ты готов заплатить за поддержку такой документации. Может для твоего варианта цена будет слишком высока. Тоесть нужно иметь очень много оснований чтобы отказаться от Javadoc, Doxia и велосипедить свой собственный генератор доков. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 20:45 |
|
Как в Kotlin запустить все методы помеченные аннотацией?
|
|||
---|---|---|---|
#18+
Он уже сделан, он же не зависит от языка. На котлине мне нужно просто собрать кусочки помеченные @Doc по всему коду в список и сериализовать в JSON. Прийдется повозится с интроспекцией загрузчиками классов, надеюсь что хотя-бы maven не прйдется задействовать. На TypeScript требуется 10 строчек для подключиения документации, ниже весь код который требуется, плюс еще одна строчка кода которая записывает содержимое переменной all_docs в файл как JSON (генератор документации уже забирает этот JSON и создает документацию). Так что писать особо ничего не нужно. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2020, 21:13 |
|
|
start [/forum/topic.php?fid=59&msg=39990641&tid=2120704]: |
0ms |
get settings: |
4ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
39ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
227ms |
get tp. blocked users: |
1ms |
others: | 288ms |
total: | 572ms |
0 / 0 |