我的问题与已发布的内容不同:
我已经做到了final
,static
但仍将鼠标悬停在该错误上。
这是我的代码:
Login.java
@FindBy(xpath = Constants.user_email)
public static WebElement user_email;
Constants.java
public static final String user_email= CONFIG.getProperty("user_email");
我试图解决的问题:我将此更改public static Properties CONFIG = new Properties();
为public static final Properties CONFIG = new Properties();
注释元素值必须在编译时由编译器解析。user_email
静态final是不够的,其值必须是编译时常量,即字符串文字或常量表达式的串联。该表达式CONFIG.getProperty("user_email")
要到运行时才能解析,因此不能将其用作注释值。
Java语言规范中给出了“常量表达式”的确切定义:
编译时常量表达式是表示原始类型或String的值的表达式,该值不会突然完成,并且仅使用以下内容组成:
[...]
- TypeName形式的合格名称(第6.5.6.2节)。引用常量变量的标识符(第4.12.4节)。
其中“常量变量”是“原始类型或字符串类型的变量,该变量是最终变量,并使用编译时常量表达式初始化”
(是的,这些定义是循环的,对于字符串,您最终必须在带引号的字符串文字或连接一系列其他常量表达式的表达式中达到最低点)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句