Java 我们可以在运行时将值传递给注释吗?

Java 我们可以在运行时将值传递给注释吗?,java,annotations,date-format,Java,Annotations,Date Format,我们需要用java创建一个名为DateFormat的注释。它将采用字符串日期格式 class User { @Dateformat("MMM/dd/yyyy") private Date birthDate; } 在这里,日期格式作为参数静态地传递给注释。是否有任何方法可以在运行时传递此日期格式可能来自会话 请帮忙。直接,不 但是,如果您有一个属性解析机制,您可以有如下功能: @DateFormat("${birth.date.format}") 解析批注时解析birth.

我们需要用java创建一个名为DateFormat的注释。它将采用字符串日期格式

class  User
{
    @Dateformat("MMM/dd/yyyy")
    private Date birthDate;
}
在这里,日期格式作为参数静态地传递给注释。是否有任何方法可以在运行时传递此日期格式可能来自会话

请帮忙。

直接,不

但是,如果您有一个属性解析机制,您可以有如下功能:

@DateFormat("${birth.date.format}")
解析批注时解析birth.date.format属性。

直接,否

但是,如果您有一个属性解析机制,您可以有如下功能:

@DateFormat("${birth.date.format}")

并在解析批注时解析birth.date.format属性。

否。您可以使用如下批注

@DateFormat(sessionKey = "foo")

使用注释的工具/api将提取sessionKey属性的值,并使用给定的会话属性键从会话中获取要应用的模式。

否。您可以使用如下注释

@DateFormat(sessionKey = "foo")

使用注释的工具/api将提取sessionKey属性的值,并使用给定的会话属性键从会话中获取要应用的模式。

Java语言规范规定注释参数值必须是常量表达式。发件人:

元素类型T与元素值V相称,当且仅当 如果以下条件之一为真:

T是数组类型E[],并且: V是ElementValueArrayInitializer,每个ElementValueInitializer类似于 V中的数组初始值设定项与E相称。或 V是与T相称的元素值。 V的类型与§5.2中的T兼容,此外: 如果T是基元类型或字符串,则V是常量表达式。 V不是空的。 如果T是类,或类的调用,V是类文字§15.8.2。 如果T是枚举类型,V是枚举常量。
本例中的关键项是第二个块的第一个子点。

Java语言规范规定注释参数值必须是常量表达式。发件人:

元素类型T与元素值V相称,当且仅当 如果以下条件之一为真:

T是数组类型E[],并且: V是ElementValueArrayInitializer,每个ElementValueInitializer类似于 V中的数组初始值设定项与E相称。或 V是与T相称的元素值。 V的类型与§5.2中的T兼容,此外: 如果T是基元类型或字符串,则V是常量表达式。 V不是空的。 如果T是类,或类的调用,V是类文字§15.8.2。 如果T是枚举类型,V是枚举常量。
本例中的关键项是第二个块的第一个子点。

我们将在数据库中使用此日期格式。一旦用户登录到应用程序,我们将获取它。属性文件中未存储日期格式。它存储在数据库的用户首选项表中。那么,让您的注释解析器从用户加载配置,这一切取决于您如何解析注释。如何解析它,在哪里?我们将在数据库中使用此日期格式。一旦用户登录到应用程序,我们将获取它。属性文件中未存储日期格式。它存储在数据库的用户首选项表中。那么,让您的注释解析器从用户加载配置,这一切取决于您如何解析注释。如何解析它,在哪里?