在java程序调试或运行的时候,经常会遇到java.lang.NoSuchMethodError或java.lang.ClassCastException的错误。接着是一堆如下的东西:
[B cannot be cast to java.lang.Byte
xxx cannot be cast to uuu.
...
大致知道是类型不匹配导致的错误,平时也没留意后面写的啥,直到一次使用dom4j包时,在debug的时候发现里面的一个方法有n个同名的重载形式,
然而那个 "[B" 又不知道是啥意思,百度无果,只能一个个瞅了,杯具!
终于,在最近看API文档的时候,不经意间看到了Class类的getName()这个方法,眼前一亮。在此对该方法稍做个小结,以儆后虫:
1. 引用类型: 返回二进制名称。(java.lang.string,java.lang.Integer)
2. 基本类型或void: 返回对应Java关键字相同的String。(int,void)3. 数组类型:返回'['字符加元素类型名,多维数组则多个'['字符;元素类型名对应如下;([B,[Ljava.lang.String)
Element Type Encoding
boolean Z
byte B
char C
class or interface Lclassname;
double D
float F
int I
long J
short S
boolean Z
byte B
char C
class or interface Lclassname;
double D
float F
int I
long J
short S