В каком-то смысле все правильно в диаграмме UML, при условии, что люди (или инструменты), которые читают диаграмму, понимают, что вы имеете в виду.
В другом смысле более привычно / целесообразно использовать UML синтаксис. UML - это язык дизайна, а не язык программирования. Если вы пытаетесь использовать синтаксис языка программирования (т.е. Java) для типов, объявлений и т. Д. c в диаграмме UML, вы (вероятно) упускаете точку UML. (UML-инструмент, вероятно, будет возражать против вас, используя синтаксис Java, но это зависит от того, насколько тесно / глубоко он реализует формальный синтаксис и метамодель UML.)
В этом случае, я думаю, наиболее подходящий способ записать это будет:
- block : Block[]
или
- block : Block[1..*]
Тот факт, что вы хотите использовать ArrayList<Block>
для реализации многозначного значения, является деталью реализации. Это не относится к диаграмме UML. (На мой взгляд.)
Но есть (возможная) третья альтернатива. Добавьте Block
к вашей UML-диаграмме в качестве класса и смоделируйте связь, используя ассоциацию.