Type Casts

A type cast instructs the compiler that an expression has a specific type.

Warning️️: Type casts are by nature dangerous and should be used with caution!

A Flix programmer should not normally use type casts except in two cases:

  • To cast a Java type to one of its super-types.
  • To cast the null value to a nullable type.

Both use cases are legitimate and safe.

Example: Safe Cast to a Super-Type

The expression below casts a String to an Object:

"Hello World" as ##java.lang.Object

Example: Safe Cast from Null to an Object-Type

The expression below casts the null value (of type Null) to String:

null as ##java.lang.String

Example: Unsafe Cast

The expression below contains an illegal cast and triggers a ClassCastException:

(123, 456) as String

Primitive Values and Boxing

Note: A type cast should not be used to box or unbox primitive values. Instead use the designated Java methods. For example, Integer.valueOf and Integer.intValue.