2014-12-05 79 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); 
相關問題