java中不同文件中具有相同名称的常量

java中不同文件中具有相同名称的常量,java,Java,我使用相同的名称定义了两个常量,但在两个不同的类中定义了不同的值: 常量\u main.java: public static final String FIELD_NAME_ID = "id"; 常量\u common.java: public static final String FIELD_NAME_ID = "incidentId"; 我在另一个类中导入这两个常量:并使用该常量: import com.example.constants_common; import com.exa

我使用相同的名称定义了两个常量,但在两个不同的类中定义了不同的值:

常量\u main.java:

public static final String FIELD_NAME_ID = "id";
常量\u common.java:

public static final String FIELD_NAME_ID = "incidentId";
我在另一个类中导入这两个常量:并使用该常量:

import com.example.constants_common;
import com.example.constants_main;
.....
Criteria.where(constants_main.FIELD_NAME_ID).is(inputId);

这里,常量\u main.FIELD\u NAME\u ID的值作为incidentId而不是ID


获取第一个imported的原因是什么?我假设它是常量,即使它由类名限定

如果要从类constants\u main获取值id,请直接使用com.example.constants\u main.FIELD\u NAME\u id,而不导入com.example.constants\u common

你只需要:

Criteria.where(com.example.constants_main.FIELD_NAME_ID).is(inputId);

不,看起来您专门使用了常量\u main.FIELD\u NAME\u IDconstants\u main.FIELD\u NAME\u ID等于ID。尝试调试,您会看到。我再次调试,现在它按预期工作。也许这是一个环境问题。我还想知道是怎么回事,因为我很确定我看到了这个问题。