@Target(value=PARAMETER)
@Retention(value=RUNTIME)
public @interface Switch
boolean parameter as a "switch", whose value will be
set by "flags", such as "--silent", which will represent a boolean parameter
annotated with @Switch("silent").
Switches can have a long form and a short form. The long form is prefixed by --,
while the short one is prefixed by -, i.e. --silent and -s.
Switches may have their short form combined in a Unix-like style:
--silent --permanent can be -s -p and -sp.