在Java中创建自定义注释以强制UPPER或更低Case

时间:2012-08-30 11:21:56

标签: java

通过强制pojo字段的大写或小写,感谢在JAVA中创建自定义注释的任何帮助。喜欢得到类似下面的东西

// 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方法默认情况下应强制数据基于注释存储在UPPERCASE或LOWERCASE中。感谢任何帮助,以获得这个。

提前致谢

2 个答案:

答案 0 :(得分:1)

注释是Java中的被动元素;他们不能有任何行为。正如@maba所说,你不能在注释声明中写任何代码。

为了获得与您尝试的类似的东西,您需要能够检测注释并执行某些工作的东西。你有几个选择。

编写自定义编译时注释处理器允许您在编译之前预处理源代码。

面向方面编程可以在编译和运行时工作。它相对容易理解,但需要根据您的项目设置一些工具,具体取决于您的部署位置。

动态代理也很简单,但你需要改变你的代码访问对象的方式,可能是通过声明一些接口并使用它们代替类等。

代码生成库属于复杂的一面,具有很大的灵活性(例如,它们是如何通过POJO对象实现Hibernate的神奇功能)。

答案 1 :(得分:0)

您的陈述// NEED HELP HERE应符合以下条件:

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

如果你认为你可以有一些代码那么你错了。