2014-12-05 52 views
-2

我有相同的名称定义两个常量,但不同的值在2个不同的类别:常数具有相同名称在不同的文件中的java

constants_main.java:

public static final String FIELD_NAME_ID = "id"; 

constants_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); 

这里,constants_main.FIELD_NAME_ID的值被视为“incidentId”而不是“id”。

即使通过类名限定了第一个导入的(我假设它)常量值的原因是什么?

+2

没有,它看起来像你专门使用'constants_main.FIELD_NAME_ID' – Kapep 2014-12-05 14:36:06

+0

constants_main.FIELD_NAME_ID等于 “ID”。尝试调试,你会看到。 – javaHunter 2014-12-05 14:37:27

+0

我再次调试,现在它按预期工作。也许这是一个环境问题。仍然想知道如何,因为我很确定我看到了这个问题。 – kinf1 2014-12-05 16:54:41

回答

0

那么,如果你想从类constants_main得到值"id"尝试直接使用com.example.constants_main.FIELD_NAME_ID而不导入com.example.constants_common

你只需要:

Criteria.where(com.example.constants_main.FIELD_NAME_ID).is(inputId); 
相关问题