Odpowiedzi:
Wyciszają ostrzeżenie, które emituje Eclipse, gdy napotka literały łańcuchowe (i zostało skonfigurowane do narzekań).
Chodzi o to, że komunikaty interfejsu użytkownika nie powinny być osadzane jako literały łańcuchowe, ale raczej pochodzą z pliku zasobów (aby można je było przetłumaczyć, sprawdzić itp.). W związku z tym można skonfigurować Eclipse do wykrywania literałów ciągów, aby przypadkowo nie pozostawić niezaktualizowanych ciągów interfejsu użytkownika w kodzie; istnieją jednak łańcuchy, których nie należy eksternalizować (np. wyrażenia regularne), a więc // $ NON-NLS-1 $ daje ci możliwość przekazania tego faktu kompilatorowi.
NON-NLS
środki dla - N arodowy L anguage S asystencja .
Wikipedia proponuje dla - N nio L anguage S asystencja (NLS), lecz ten ostatni nie jest przyzwyczajony.
NLS dotyczy internacjonalizacji Twojej aplikacji. Eclipse pomaga zlokalizować zakodowane ciągi w kodzie. Aby wskazać, że łańcuch nie jest częścią internacjonalizacji, dołącz komentarz, //$NON-NLS-x$
gdzie x jest pozycją łańcucha. W poniższym przykładzie oba "!"
są ciągami zakodowanymi na stałe, które nie są częścią internacjonalizacji:
public String foo(String key) {
return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
}
Uwagi:
//
jest konieczne za każdym razem$NON-NLS$
dla wielu ciągów w tej samej linii //$NON-NLS-x$
)Książka EMF: Eclipse Modeling Framework na stronie 250 mówi:
Znaczniki inne niż NLS - Kompilator Java Eclipse ma możliwość oflagowania nie eksternalizowanych ciągów jako ostrzeżenia lub błędu, w celu ułatwienia włączenia obsługi języka narodowego (NLS). Kod generowany przez EMF nie używa ciągów zakodowanych na stałe w komunikatach, które zobaczy użytkownik; literały ciągów pojawiają się jednak często, na przykład jako klucze do wyszukiwania eksternalizowanych ciągów w pliku właściwości. Ta właściwość kontroluje, czy dołączać komentarze oznaczające te literały jako nieprzekładalne, aby kompilator ich nie oznaczał.
Aby uzyskać więcej informacji, zobacz także strony Graficzny interfejs użytkownika generatora i sposób internacjonalizacji wtyczki Eclipse .
Możesz włączyć / wyłączyć tę funkcję. W Eclipse Neon przejdź do
Project > Properties > Java Compiler > Errors/Warnings
i wybierz pole
Non-externalized strings (missing/unused $NON-NLS$ tag)
Jeśli jesteś programistą Androida. Wszystkie ciągi, które użytkownik może zobaczyć, powinny znajdować się w pliku zasobów /res/values/strings.xml, aby odczytać plik strings.xml w kodzie, którego używasz R.string. Dodając tag // $ NON-NLS- $ jesteś zauważając, że ciąg nie będzie widoczny dla użytkowników.
Ostrzeżenie w Eclipse Helios może być włączone o godz Window -> preferences -> java -> Compiler -> code style -> "Non-externalized Strings (missing/unused &NON-NLS$ tag)
.
Jeśli planujesz zaprogramować swoją aktywność jako wielojęzyczną, zaleca się włączenie tego. A następnie dodając tag & NON-NLS $ do ciągów, które są wewnętrzne dla twojej aktywności. Eclipse doda tag & NON-NLS $ do szybkiej poprawki, jeśli klikniesz ostrzeżenie lub błąd prawym przyciskiem myszy.
Jest używany przez Eclipse do wskazania, że ciąg nie musi być tłumaczony, prawdopodobnie dlatego, że nie będzie widoczny dla użytkowników aplikacji.
Mówi kompilatorowi, aby nie narzekał na nie eksternalizowany ciąg i że nie wymaga lokalizacji.