Почему это работает (googleIO acionbarherlper? - PullRequest
0 голосов
/ 26 февраля 2012

Итак, код следующий:

public static ActionBarHelper createInstance(Activity activity) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        return new ActionBarHelperICS(activity);
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        return new ActionBarHelperHoneycomb(activity);
    } else {
        return new ActionBarHelperBase(activity);
    }
}

Если у меня устройство 2.3 (api 9), оно не должно поддерживать Build.VERSION_CODES.ICE_CREAM_SANDWICH, но все же работает, почему? Если бы это был метод, который я назвал, он бы потерпел крах. Это потому, что это публичный статический финал int, и поэтому он добавлен в мой код? Пожалуйста, дайте некоторую общую информацию, а не просто ответ да / нет :)

1 Ответ

0 голосов
/ 29 февраля 2012

Как указал Стефан, уровень API, используемый для компиляции кода, определяет константы, видимые во время компиляции.Для моего случая это не доставляет проблем, так как я просто сравниваю простые значения.Это создаст проблемы только в том случае, если вы используете метод set, который использует разные константы, и вы хотите использовать константу, которую невозможно обработать для вашей версии API.

...