我们需要在java中创建一个名为DateFormat的注释。它将采用字符串dateformat,例如。
class User
{
@Dateformat("MMM/dd/yyyy")
private Date birthDate;
}
此处,日期格式作为参数静态传递给注释。我们有什么办法可以在运行时传递这个日期格式,可能来自会话。
请帮忙。
答案 0 :(得分:3)
直接,没有。
但是如果你有一个属性解析机制,你可以有类似的东西:
@DateFormat("${birth.date.format}")
解析注释时解析birth.date.format
属性。
答案 1 :(得分:1)
Java Language Spec规定注释参数值必须是常量表达式。来自section 9.6:
元素类型T仅与元素值V相当 如果满足下列条件之一:
- T是一个数组类型E []并且:
- V是一个ElementValueArrayInitializer和每个ElementValueInitializer(类似于一个变量初始值设定项) V中的数组初始值设定项与E.或
相当- V是与T.相称的ElementValue。
- V的类型与T分配兼容(第5.2节),此外:
- 如果T是基本类型或字符串,则V是常量表达式(§15.28)。
- V不为空。
- 如果T是Class,或者是Class的调用,而V是类文字(第15.8.2节)。
- 如果T是枚举类型,则V是枚举常量。
这种情况下的关键项是第二个块的第一个子点。
答案 2 :(得分:0)
没有。你能做的是有一个像
这样的注释@DateFormat(sessionKey = "foo")
使用注释的工具/ api将提取sessionKey属性的值,并使用给定的会话属性键从会话中获取要应用的模式。