Відповіді:
Вони замовчують попередження, яке Eclipse видає, коли він стикається з рядковими літералами (і налаштовано на скарга).
Ідея полягає в тому, що повідомлення інтерфейсу не повинні вбудовуватися як рядкові літерали, а надходити з файлу ресурсів (щоб вони могли бути перекладені, перевірені і т.д.). Отже, Eclipse може бути налаштований на виявлення літеральних рядків, щоб ви випадково не залишили в коді невідокремлені рядки інтерфейсу; однак є рядки, які не слід екстерналізувати (наприклад, регулярні вирази) і так, // $ NON-NLS-1 $ дає вам спосіб повідомити цей факт компілятору.
NON-NLS
засіб Номер - N Національні L anguage S оддержка .
Вікіпедія пропонує також Non - N чеських L anguage S оддержкі (NLS) , але цей останній не дуже використовуються.
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: Рамка моделювання затемнення на сторінці 250 сказано:
Не-NLS маркери - компілятор Java Eclipse має можливість позначити неекстерналізовані рядки як попередження або помилку, щоб полегшити підтримку національної мови (NLS). Створений EMF код не використовує жорстко кодовані рядки для повідомлень, які бачить користувач; проте рядкові літерали часто з’являються, наприклад, як ключі для пошуку зовнішніх рядків у файлі властивостей. Це властивість контролює, чи слід включати коментарі, які позначають ці літерали як неперекладаються, щоб компілятор не позначив їх.
Докладніше див. Також на сторінці GUI генератора та як інтернаціоналізувати плагін Eclipse .
Ви можете ввімкнути / вимкнути цю функцію. На Eclipse Neon перейдіть до
Project > Properties > Java Compiler > Errors/Warnings
та виберіть поле
Non-externalized strings (missing/unused $NON-NLS$ tag)
Якщо ви розробник Android. Усі рядки, які може бачити користувач, повинні знаходитись у файлі ресурсу /res/values/strings.xml, щоб прочитати файл strings.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 $ тег у швидке виправлення, якщо натиснути правою кнопкою миші на попередження або помилку.
Eclipse використовується для вказівки на те, що рядок не потрібно перекладати, ймовірно, тому, що користувачі програми не побачать його.
Він повідомляє компілятору не скаржитися на не екстерналізований рядок і що він не потребує локалізації.