Package org.jetbrains.annotations
Annotation Type NonNls
-
@Documented @Retention(CLASS) @Target({METHOD,FIELD,PARAMETER,LOCAL_VARIABLE,TYPE_USE,TYPE,PACKAGE}) public @interface NonNls
Specifies that an element of the program is not a user-visible string which needs to be localized, or does not contain such strings. This annotation is intended to be used by localization tools for detecting strings which should not be reported as requiring localization.- If a method parameter is annotated with
NonNls
, the strings passed as values of this parameter are not reported as requiring localization. Also, if the parameter of a property setter method is annotated withNonNls
, values of that property in UI Designer forms are never highlighted as hard-coded strings. - If a field is annotated with
NonNls
, all string literals found in the initializer of the field are not reported as requiring localization. - If a method is called on a field, parameter or local variable annotated with
NonNls
, string literals passed as parameters to the method are not reported as requiring localization. - If a field, parameter or local variable annotated with
NonNls
is passed as a parameter to theequals()
method invoked on a string literal, the literal is not reported as requiring localization. - If a field, parameter or local variable annotated with
NonNls
is found at the left side of an assignment expression, all string literals in the right side of the expression are not reported as requiring localization. - If a method is annotated with
NonNls
, string literals returned from the method are not reported as requiring localization. - If a class is annotated with
NonNls
, all string literals in the class and all its subclasses are not reported as requiring localization. - If a package is annotated with
NonNls
, all string literals in the package and all its subpackages are not reported as requiring localization.
This annotation also could be used as a meta-annotation, to define derived annotations for convenience. E.g. the following annotation could be defined to annotate the strings that represent UUIDs, thus should not be localized:
@NonNls @interface UUID {}
Note that using the derived annotation as meta-annotation is not supported. Meta-annotation works only one level deep.
- If a method parameter is annotated with