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