Как написать аннотацию с элементами в PlantUML?

#annotations #plantuml

#аннотации #plantuml

Вопрос:

Я хочу написать аннотацию с элементами в PlantUML. В частности, я хочу описать этот Java-код в PlantUML:

 public @interface Foo {
    String bar();
    String baz();
}
 

Я попытался написать это на PlantUML, но это вызывает синтаксическую ошибку:

 @startuml
annotation Foo {
    String bar()
    String baz()
}
@enduml
 

plantuml-синтаксическая ошибка

Тем не менее, это работает, когда я опускаю членов:

 @startuml
annotation Foo
@enduml
 

введите описание изображения здесь

Что мне делать? Спасибо.

Ответ №1:

В PlantUML аннотации не могут иметь членов (отсюда синтаксическая ошибка).

Чтобы отобразить диаграмму UML для вашего кода, вам нужно будет использовать другое решение, например, добавить аннотацию как отдельный объект:

 @startuml
annotation interface

class Foo {
    String bar();
    String baz();
}


interface -- Foo
@enduml
 

Схема PlantUML приведенного выше кода

Или включить аннотацию в определение имени класса:

 @startuml
class "@interface Foo" as Foo {
    String bar();
    String baz();
}
@enduml
 

Схема PlantUML приведенного выше кода

Комментарии:

1. Благодарим вас за подтверждение того, что PlantUML не поддерживает аннотации с элементами. Я отправил заявку на github.com/plantuml/plantuml/issues/458 .

Ответ №2:

Теперь можно писать аннотации с элементами: http://www.plantuml.com/plantuml/uml/SoWkIImgAStDuKhCoyilIIp9pCzJSClFLwZcKW22u9AYpBnqXQJ48WrDL84ge40jbqDgNWfGCm00

Согласно комментарию, он доступен начиная с версии V1.2020.2.