2014-12-05 2 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 принимается как «инцидентное» вместо «id».

В чем причина принятия первого импортированного (я предполагаю) постоянного значения, даже если он квалифицирован именем класса?

+2

нет, это выглядит, как вы конкретно использовать 'constants_main.FIELD_NAME_ID' – Kapep

+0

constants_main.FIELD_NAME_ID равно«идентификатор». Попробуйте отладить, и вы это увидите. – javaHunter

+0

Я отлаживал снова, и теперь он работает так, как ожидалось. Возможно, это была проблема с окружающей средой. Все еще интересно, как я уверен, что видел проблему. – kinf1

ответ

0

Ну, если вы хотите получить значение "id" из класса constants_main попробуйте использовать напрямую com.example.constants_main.FIELD_NAME_ID без импорта com.example.constants_common.

Вы просто:

Criteria.where(com.example.constants_main.FIELD_NAME_ID).is(inputId); 
Смежные вопросы