关于Java类型不匹配的错误,至今才看懂

在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 

你可能感兴趣的:(Java)