0

通过强制 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 方法应根据注释强制数据以大写或小写形式存储。感谢任何帮助来获得这个。

提前致谢

4

2 回答 2

1

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

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

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

面向方面的编程既可以在编译时工作,也可以在运行时工作。它相对容易理解,但是需要一些工具与您的项目一起设置,具体取决于您将其部署在哪里。

动态代理也很简单,但是您需要更改代码访问对象的方式,可能是通过声明一些接口并使用这些接口而不是类等。

代码生成库属于复杂的一面,提供了很大的灵活性(例如,它们是 Hibernate 如何使用您的 POJO 对象发挥其魔力的)。

于 2012-08-30T12:25:26.697 回答
0

您的陈述// NEED HELP HERE应符合以下规定:

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

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

于 2012-08-30T11:31:52.513 回答