5

MVCモデルクラスの場合、私のセッターは次のようになります。

enum BoundProperty {FIELD_NAME, ...}

private Type fieldName;

public setFieldName(Type newValue) {
    Type oldValue = fieldName;
    fieldName = newValue;
    firePropertyChange(BoundProperty.FIELD_NAME, oldValue, newValue);
}

フィールドが与えられた場合、この出力は自動生成されたセッターから生成できますか?そうでない場合は、テンプレートからこの出力を取得する方法はありますか?

出力は、フィールド名をCamelCaseしてメソッド名を生成する必要があるため、fieldNameはsetFieldName()を生成し、フィールド名を大文字にしてプロパティ列挙型を生成します。

したがって、fieldNameは生成しますFIELD_NAME(またはFIELDNAME機能します)。

4

3 に答える 3

1

このメッセージは、「ゲッター/セッターの生成」ダイアログで確認できます。 ゲッター/セッターのフォーマットは、コードテンプレート設定ページで構成できます。そこ(セクションSetter Bodyの下Code)に移動して、以下のように変更できます。

Type oldValue = ${field};
${field} = ${param};
firePropertyChange(BoundProperty.FIELD_NAME, oldValue, ${param});

ただし、生成されませBoundPropertyん。それが可能かどうかを調べるには、さらに調査が必要です。これらのリンクは役立つかもしれません

便利なEclipseJavaコードテンプレートEclipseコードテンプレート入門

于 2012-01-17T13:28:18.820 に答える
1

主にキャメルケース/大文字と列挙値の生成に関して、Eclipseテンプレートを使用してこれを作成する簡単な方法はないと思います。これらの2つの質問を確認できます。Eclipse(Helios)コードテンプレートで変数の値の最初の文字を大文字にする方法はありますか?プログラムでコードテンプレートを追加しますか?詳細を掘り下げます。

IMHO、あなたが望むものを達成するための最良の方法は、Fast Code Eclipseプラグインを使用し、フィールドからすべてのコードを生成するそのプラグインの速度テンプレートを作成することです。

enum BoundProperty {
#foreach ($field in ${fields})
    ${field.toUpperCase()} #if( $foreach.hasNext ), #end
#end
}

#foreach ($field in ${fields})
    public ${field.type} get${field.name.substring(0,1).toUpperCase()}${field.name.substring(1)}(${field.type} newValue) {
        Type oldValue = fieldName;
        fieldName = newValue;
        firePropertyChange(BoundProperty.${field.name.toUpperCase()}, oldValue, newValue);       
    }
#end

または、そのプラグインの「getter_setter」テンプレートを変更します。

于 2012-01-17T14:48:58.640 に答える
0

Fast Code Eclipseプラグインはオプションのように見えますが、インストール中にエラーが発生しました。追跡する時間がなく、Useful Eclipse Java Code Templatesは、必要なすべてのことを実行します。 Eclipseプラグイン。

于 2012-01-18T15:54:33.317 に答える