Annotation Interface Optional


@Retention(RUNTIME) @Target(PARAMETER) public @interface Optional
Specifies that the current parameter is optional. TestNG will pass in a specified default value, or null if none is specified.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    The default value to pass to this parameter.
  • Element Details

    • value

      String value
      The default value to pass to this parameter.

      The default deserves a bit of explanation. JSR-175 (which defines annotations) says that Java annotation parameters can only be ConstantExpressions, which can be primitive/string literals, but not null.

      In this case, we use this string as a substitute for null; in practice, TestNG will pass null to your code, and not the string "null", if you do not specify a default value here in this parameter.

      Returns:
      the value (default NULL_VALUE)
      Default:
      "null"