For a message such as the following:
ClassCastException: class [I cannot be cast to class java.lang.Integer
what does [I
mean?
The encoding abbreviations are documented in the Class.getName()
method.
If this Class object represents an array class, then the result is a string consisting of one or more ‘[’ characters representing the depth of the array nesting, followed by the element type as encoded using the following table:
Element Type | Encoding |
---|---|
boolean | Z |
byte | B |
char | C |
class or interface with binary name N | LN; |
double | D |
float | F |
int | I |
long | J |
short | S |
(Binary names are typically just the fully qualified object name, such as java.lang.Object
, but can be more complex for nested classes and other types.)