Antworten:
Sie bringen eine Warnung zum Schweigen, die Eclipse ausgibt, wenn es auf String-Literale stößt (und so konfiguriert wurde, dass sie sich beschwert).
Die Idee ist, dass UI-Nachrichten nicht als String-Literale eingebettet werden sollten, sondern aus einer Ressourcendatei stammen (damit sie übersetzt, geprüft usw. werden können). Folglich kann Eclipse so konfiguriert werden, dass Zeichenfolgenliterale erkannt werden, sodass Sie nicht versehentlich nicht externalisierte UI-Zeichenfolgen im Code belassen. Es gibt jedoch Zeichenfolgen, die nicht externalisiert werden sollten (z. B. reguläre Ausdrücke). // $ NON-NLS-1 $ bietet Ihnen daher die Möglichkeit, diese Tatsache dem Compiler mitzuteilen.
Die Zeichenfolge ist nicht übersetzbar. Der Eclipse-Editor wird angewiesen, die Zeichenfolge nicht als nicht mit Ressourcen versehen zu kennzeichnen. Dies ist wichtig für mehrsprachige Anwendungen.
NON-NLS
Mittel Non - N ational L anguage S upport .
Wikipedia schlägt auch nicht - N tive L anguage S upport (NLS) , aber das letzte ist nicht sehr verwendet.
Bei NLS geht es darum, Ihre Bewerbung zu internationalisieren. Eclipse hilft dabei, fest codierte Zeichenfolgen in Ihrem Code zu finden. Um anzuzeigen, dass eine Zeichenfolge nicht Teil der Internationalisierung ist, fügen Sie den Kommentar hinzu, //$NON-NLS-x$
wobei x die Position der Zeichenfolge ist. Im folgenden Beispiel handelt es sich bei beiden "!"
um fest codierte Zeichenfolgen, die nicht Teil der Internationalisierung sind:
public String foo(String key) {
return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
}
Anmerkungen:
//
ist jedes Mal notwendig$NON-NLS$
für mehrere Zeichenfolgen innerhalb derselben Zeile //$NON-NLS-x$
).Das Buch EMF: Eclipse Modeling Framework auf Seite 250 lautet:
Nicht-NLS-Marker - Der Java-Compiler von Eclipse kann nicht externalisierte Zeichenfolgen als Warnung oder Fehler kennzeichnen , um die Aktivierung der National Language Support (NLS) zu erleichtern. EMF-generierter Code verwendet keine fest codierten Zeichenfolgen für Nachrichten, die der Benutzer sehen wird. Zeichenfolgenliterale werden jedoch häufig als Schlüssel für die Suche nach externen Zeichenfolgen in einer Eigenschaftendatei angezeigt. Diese Eigenschaft steuert, ob Kommentare eingefügt werden sollen, die diese Literale als nicht übersetzbar markieren, damit der Compiler sie nicht kennzeichnet.
Weitere Informationen finden Sie auch auf den Seiten Die Generator-Benutzeroberfläche und Informationen zur Internationalisierung Ihres Eclipse-Plug-Ins .
Sie können diese Funktion aktivieren / deaktivieren. Gehen Sie in Eclipse Neon zu
Project > Properties > Java Compiler > Errors/Warnings
und wählen Sie das Feld aus
Non-externalized strings (missing/unused $NON-NLS$ tag)
Wenn Sie ein Android-Entwickler sind. Alle Zeichenfolgen, die der Benutzer möglicherweise sieht, sollten sich in der Ressourcendatei /res/values/strings.xml befinden, um die Datei strings.xml in dem von Ihnen verwendeten Code R.string zu lesen. Durch Hinzufügen des Tags // $ NON-NLS- $ sind Sie Beachten Sie, dass die Zeichenfolge von Benutzern nicht gesehen wird.
Die Warnung in Eclipse Helios kann unter aktiviert sein Window -> preferences -> java -> Compiler -> code style -> "Non-externalized Strings (missing/unused &NON-NLS$ tag)
.
Wenn Sie planen, Ihre Aktivität mehrsprachig zu programmieren, wird empfohlen, diese Option zu aktivieren. Fügen Sie dann das & NON-NLS $ -Tag zu Zeichenfolgen hinzu, die für Ihre Aktivität intern sind. Eclipse fügt der Schnellkorrektur das Tag & NON-NLS $ hinzu, wenn Sie mit der rechten Maustaste auf die Warnung oder den Fehler klicken.
Es wird von Eclipse verwendet, um anzuzeigen, dass eine Zeichenfolge nicht übersetzt werden muss, wahrscheinlich weil sie von den Benutzern der Anwendung nicht gesehen wird.
Es weist den Compiler an, sich nicht über eine nicht externalisierte Zeichenfolge zu beschweren, und dass keine Lokalisierung erforderlich ist.