繁体   English   中英

我有一个Java注释,它以字符串常量作为参数,如何将字符串变量传递给它?

[英]I have a java annotation which takes a string constant as a argument , how can I Pass a string variable to the same?

例如,对于@FindBy(how = How.XPATH, using="//input[@name='Username']") ,我想替换字符串常量"//input[@name='Username']" ,即使我将变量声明为final,也无法将变量作为参数传递。 我想这样写

final   static String Username_xpath="//input[@name='Username']";   
@FindBy(how = How.XPATH, using=Username_xpath)      

不可以,您不能在Annotation中使用变量,只能使用常量。

以下将起作用,因为这里Username_xpath是一个常量:

final static String Username_xpath="//input[@name='Username']";
@FindBy(how = How.XPATH, using=Username_xpath)

您不能将变量用作注释值,因为注释已在编译时求值。

因此,仅编译时间常数( static final )可以用作注释中的值。

批注设计用于编译时或部署时处理。 此时,您没有任何运行时变量。 因此,不可能将变量与注释关联使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM