A type pattern is one of
TypeNamePattern | all types in TypeNamePattern |
SubtypePattern | all types in SubtypePattern, a
pattern with a +. |
ArrayTypePattern | all types in ArrayTypePattern,
a pattern with one or more []s. |
! | all types not in TypePattern |
| all types in both
TypePattern0 and TypePattern1 |
| all types in either
TypePattern0 or TypePattern1 |
( | all types in TypePattern |
where TypeNamePattern can either be a
plain type name, the wildcard * (indicating all
types), or an identifier with embedded * and
.. wildcards.
An embedded * in an identifier matches any
sequence of characters, but does not match the package (or
inner-type) separator ".".
An embedded .. in an identifier matches any
sequence of characters that starts and ends with the package (or
inner-type) separator ".".