<< §1.2.3 Protected roles | ↑ Table of Contents ↑ | §1.2.5 File structure >> |
§1.2.4 Type tests and casts
In accordance with §1.2.2.(e), in OT/J
the instanceof
operator and type casts have extended semantics for roles.
(a) instanceof
For role types the instanceof
operator yields true only if
both components of the type match: the dynamic role type must be compatible
to the given static type, and also type anchors must be the same instance.
(b) Casting
Casts may also fail if the casted expression is anchored to a different
team instance than the cast type. Such failure is signaled by a
org.objectteams.RoleCastException
.
(c) Class literal
A class literal of form R.class
is dynamically bound to the class R
visible in the current instance context. Using a class literal for a role outside its
enclosing team instance (see §1.2.2) requires the following syntax:
RoleClass<@teamAnchor>.class
<< §1.2.3 Protected roles | ↑ Table of Contents ↑ | §1.2.5 File structure >> |