6

2 つのクラスがあります ( DatabaseRecordなど)。Database クラスには、Record オブジェクトのリストを返す getRecords() という名前のメソッドがあります。

Java では、上記のメソッドは次のように記述できます。

List<Record> getRecords(){..}

StarUMLで、クラス図を設計しながら、与えてみました

+getRecords() : Record[0..*]

しかし、StarUML は上記のようなメソッドの作成を拒否しました。以下のもので試したところ、うまくいきました

+getRecords() : ArrayList<Record>

しかし、これは Java に固有のものです。StarUML で Record[0..*] のようなものを実装したいと考えています。そのような形式でメソッドを書くことは可能ですか、それとも戻り値の型のJavaスタイルが唯一の解決策ですか?

4

1 に答える 1

23

StarUML がテキストの解析を拒否する理由はわかりませんが、モデルを介して作成することはできます。

  1. 操作を追加して呼び出すgetRecords()
  2. (ダイアグラムまたはモデル内の) 操作を右クリックし、[追加] > [パラメーター] を選択します。
  3. モデル エクスプローラーでパラメーターを選択し(おそらく、パラメーターは作成時に既に選択されています)、directionパラメーターを に設定しますreturn。これは、UML が戻り値の型を表す方法です。
  4. (タイプ、多重度、その他必要なものを構成します。)

UML のデフォルト コレクションはであるため、順序付けられたコレクションであるため、Setをチェックする必要があります。isOrderedList

于 2018-03-20T16:53:42.590 に答える