0

私はいくつかの jxpath を列挙に入れたいと思っています。マップを使用して JSF ページと共有します。これにより、jxpath が createPathAndSetValue を実行するためのキーとしてそれらを EL で使用できるようになります。

そうすれば、大量のゲッターとセッターを作成することなく、モデルを簡単に埋めることができます。このような:

<h:inputText value="#{backingBeanMap[backingBeanMap.billingAddress_postalCode]}" />

私はこのようなものを持っています

public enum MWField {
    isGiftJoin,
    billingAddress_postalCode,
    ...
    associates$3_memberInfo_membershipType_type;

    public final String xpath;

    MWField(){
        this.xpath = name().replace('_', '/').replace("$0", "[0]")
        .replace("$1", "[1]").replace("$2", "[2]")
        .replace("$3", "[3]").replace("$4", "[4]")
        .replace("$5", "[5]").replace("$6", "[6]")
        .replace("$7", "[7]").replace("$6", "[6]")
        .replace("$9", "[9]").replace("$10", "[10]");
    }
}

大文字の名前の代わりに isGiftJoin またはbillingAddress_postalCode という名前を使用し、コンストラクターで _ を / に置き換えます (したがって、xpath 属性は実際の xpath です)。どのプロパティにも名前に _ が含まれていない (含まれていない) 限り、作業は完了です。列挙は「大文字」にはなりませんが、RED が定数であるという意味で、列挙は実際には定数ではありません。ここでは、それらはデータを指すクラスのインスタンスであり、そのように「定数」であることを意図していません。

これらの名前は奇妙で標準的ではありませんか? C スタイルの定数である UPPERCASE 標準に連鎖するのはばかげていますか?

4

1 に答える 1

1

好きなように列挙型に名前を付けてもよいかどうか尋ねていますか?

もちろん; なぜだめですか?自分に合った標準を使用してください。個人的には、すべての大文字を static final だけに予約し、enum 値のクラス命名規則を使用する傾向があります。

私は名前にアンダースコアを付けるのはあまり好きではありませんが、あなたの場合は、意図的に階層構造を作成しているため、問題はあまりありません。

パスの名前付けに列挙型が本当に必要かどうか疑問に思います.switchステートメントで列挙型を使用する必要がありますか(JDK 6以下)? それらを文字列以外のものとして表す理由はありますか? パスのない名前は価値がありますか?

于 2013-01-24T20:28:09.937 に答える