Я запускаю свое приложение Android в режиме отладки, где у меня есть некоторые константы, определенные как static final
переменные, живущие в Interface
.
Когда я нахожусь в режиме отладки в Eclipse и нахожу эти константы, чтобы увидеть их содержимое, я вижу null
для строк и 0.0
для моих двойников.
Интерфейс выглядит следующим образом:
public interface IMyConstants {
public static double DOUBLE_CONST = 4.2235234;
public static String STRING_CONST= "Should be some string";
}
Этот интерфейс находится во внешнем проекте, отличном от Android, который включен в classpath.
Другие константы из других упомянутых проектов Android, кажется, дают мне свою информацию, и они объявлены точно так же.
Я задаюсь вопросом, трудно ли отладчику читать их, потому что проект не на Android, так как это единственное отличие, которое я изначально вижу.
Прямо перед точкой останова я вывел значение константы DOUBLE_CONST в LogCat и получил правильное значение.
Это:
// Hovering over any of the constants here do not show their true value in debug
double value = myValue / IMyConstants.DOUBLE_CONST;
Log.i("MyProject", "IMyConstants.DOUBLE_CONST: " + IMyConstants.DOUBLE_CONST);
Log.i("MyProject", "IMyConstants.STRING_CONST: " + IMyConstants.STRING_CONST);
/*
* The breakpoint is here..
* hovering over DOUBLE_CONST above shows DOUBLE_CONST = 0.0
* hovering over STRING_CONST above shows STRING_CONST = null
*/
someBreakPointedMethod();
Дал:
12-19 23:32:54.316: INFO/MyProject(23806): IMyConstants.DOUBLE_CONST: 4.2235234
12-19 23:32:54.316: INFO/MyProject(23806): IMyConstants.STRING_CONST: Should be some string
Почему представление отладочного объекта (которое появляется при наведении курсора на переменную) не работает в этой ситуации?