2012-08-30 30 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