2012-08-30 71 views
0

感謝您在JAVA中創建自定義註釋的任何幫助,方法是對pojo字段強制大寫或小寫。想獲得類似下面在Java中創建自定義註釋以強制使用UPPER或小寫

// CaseMode enum would be 
public enum CaseMode { 
    UPPER, LOWER; 
} 

@Target({ ElementType.FIELD, ElementType.METHOD }) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface Case { 
    // NEED HELP HERE 
} 

public class Customer { 
    @Case(value=CaseMode.UPPER) 
    private String fName; 
    { set; get; } 
} 

在默認情況下,客戶對象setter方法應根據註釋強制存儲在大寫或小寫數據。感謝任何幫助,以獲得此。

在此先感謝

回答

0

你的聲明// NEED HELP HERE應根據以下幾點:

@Target({ElementType.FIELD, ElementType.METHOD}) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface Case { 
    CaseMode value(); 
} 

如果你認爲你可以在那裏有一些代碼,那麼你就錯了。

+0

謝謝,明白了。你可以請建議如何獲得自定義轉換爲POJO成員數據轉換。在此先感謝 – Anand

0

註解是Java中的被動元素;他們不能有任何行爲。正如@maba所說,你不能在註釋聲明中寫任何代碼。

爲了讓你想要做的事情類似,你需要檢測註釋並執行一些工作的東西。你有幾個選擇。

編寫自定義編譯時間註釋處理器可以讓你預處理編譯前的源代碼。

面向方面的編程可以在編譯時和運行時都起作用。這相對容易理解,但需要一些工具與您的項目一起設置,具體取決於您部署的位置。

動態代理是簡單爲好,但你需要改變你的代碼訪問的對象,可能通過聲明一些接口,並使用這些替代類

代碼生成庫落在複雜的方式,等等。提供了很多靈活性(例如,Hibernate如何用POJO對象來實現它的魔力)。

+0

謝謝弗拉維奧。讓我檢查你的建議。碰巧找到自定義驗證器開發的鏈接http://musingsofaprogrammingaddict.blogspot.in/2009/02/getting-started-with-jsr-303-bean.html。我希望開發一個自定義轉換器 – Anand