Annotation Type 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
      java.lang.String value
      The default value to pass to this parameter.
    • Element Detail

      • value

        java.lang.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"