6 ответов:
Они заставляют замолчать предупреждение, которое Eclipse выдает, когда он встречает строковые литералы (и был настроен на жалобу).
идея заключается в том, что сообщения пользовательского интерфейса не должны быть встроены в виде строковых литералов, а скорее получены из файла ресурсов (чтобы их можно было перевести, проверить и т. д.). Следовательно, Eclipse можно настроить для обнаружения строковых литералов, чтобы вы случайно не оставили неинтернализованные строки пользовательского интерфейса в коде; однако есть строки, которые не должны быть externalized (например, regexps) и так, //$NON-NLS-1$ дает вам способ сообщить этот факт компилятору.
строка не переводится. Он говорит редактору Eclipse не помечать строку как не имеющую ресурсов. Это важно для многоязычных приложений.
NON-NLSозначает номера -N ational Lязык S upport.
Википедия предлагает также номера -N ative Lязык Support (NLS) но этот последний не очень используется.НЛС речь идет об интернационализации вашего приложения. Eclipse поможет найти жестко закодированные строки в коде. Чтобы указать, что строка не является частью интернационализации, добавьте комментарий
//$NON-NLS-x$где x-положение строки. На следующем примере оба"!"жестко закодированные строки не являются частью интернационализации:public String foo(String key) { return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$ }Примечания:
- ведущий
//приходится каждый раз- никаких глобальных
$NON-NLS$для нескольких строк в одной строке
(например, если ваша строка имеет шесть строк, вы должны написать шесть раз//$NON-NLS-x$)книги EMF: Eclipse Modeling Framework на стр. 250 говорит:
Non-NLS маркеры - компилятор Java Eclipse имеет возможность помечать неэкстернализованные строки как предупреждение или ошибку, чтобы облегчить включение поддержки национального языка (NLS). EMF-генерируемый код не использует жестко закодированные строки для сообщений, которые пользователь увидит; однако строковые литералы появляются часто, например, как ключи для поиска внешних строк в файле свойств. Это свойство определяет, следует ли включать комментарии, которые помечают эти литералы как непереводимые,чтобы компилятор не отмечал их.
для получения более подробной информации см. также страницы графический интерфейс генератора и как интернационализировать ваш плагин Eclipse.
вы можете включить/отключить эту функцию. На Eclipse Neon перейти к
Project > Properties > Java Compiler > Errors/Warnings
и выберите полеNon-externalized strings (missing/unused $NON-NLS$ tag)
Если вы разработчик Android. Все строки, которые пользователь может видеть, должны быть в файле ресурсов / res/values / strings.XML для чтения строк.xml-файл в коде, который вы используете R. string.. Добавляя тег / / $NON-NLS -$, вы замечаете, что строка не будет видна пользователям.
предупреждение в Eclipse Helios может быть включено при
Window -> preferences -> java -> Compiler -> code style -> "Non-externalized Strings (missing/unused &NON-NLS$ tag).Если вы планируете программировать свою деятельность на нескольких языках,рекомендуется включить это. И добавление тега &NON-NLS$ в строки, которые являются внутренними для вашей деятельности. Eclipse добавит & NON-NLS$ tag в quick-fix, если вы щелкните правой кнопкой мыши на предупреждении или ошибке.
Он используется Eclipse, чтобы указать, что строка не должна быть переведена, вероятно, потому, что она не будет видна пользователям приложения.

Comments