Primitive Parameter Cast
from argument to parameter
I : implicit (no cast required)
E : explicit cast required
N : explicit cast not supported
I/I : implicit cast always possible w/o overflow
I/E : implicit cast only if no loss of precision
Java - Jxn
from \ to | double | float | long | int | short | byte | char | boolean |
double | - | E - I/E | E - E | E - E | E - E | E - E | E - E | N - E |
float | I - I/I | - | E - E | E - E | E - E | E - E | E - E | N - E |
long | I - I/I | I - I/I | - | E - I/E | E - I/E | E - I/E | E - I/E | N - I/I |
int | I - I/I | I - I/I | I - I/I | - | E - I/E | E - I/E | E - I/E | N - I/I |
short | I - I/I | I - I/I | I - I/I | I - I/I | - | E - I/E | E - I/I | N - I/I |
byte | I - I/I | I - I/I | I - I/I | I - I/I | I - I/I | - | E - I/I | N - I/I |
char | I - I/I | I - I/I | I - I/I | I - I/I | E - I/I | E - I/E | - | N - I/I |
boolean | N - I/I | N - I/I | N - I/I | N - I/I | N - I/I | N - I/I | N - I/I | - |
JxnPrimitiveWrapper.setPluggable("Java") ≡ JavaPrimitiveParameterCastTest.java
Java: no (implicit or explicit) cast allowed to and from boolean,
- all other casts allowed accepting possible loss of precision/significance(overflow)
Jxn: supports controlled auto cast on method invocation