[Ljava.lang.String

Error setting expression 'XXX' with value '[Ljava.lang.String;@1b6c184'

经常看见这种错误,[Ljava.lang.String指的是什么呢?其实还是要看Class类的getName()方法。

public String getName()
String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。

如果此类对象表示的是非数组类型的引用类型,则返回该类的二进制名称,Java Language Specification, Second Edition 对此作了详细说明。

如果此类对象表示一个基本类型或 void,则返回的名字是一个与该基本类型或 void 所对应的 Java 语言关键字相同的 String

如果此类对象表示一个数组类,则名字的内部形式为:表示该数组嵌套深度的一个或多个 '[' 字符加元素类型名。元素类型名的编码如下:

Element Type   Encoding
boolean   Z
byte   B
char   C
class or interface   Lclassname;
double   D
float   F
int   I
long   J
short   S

类或接口名 classname 是上面指定类的二进制名称。

示例:

 String.class.getName()
     returns "java.lang.String"
 byte.class.getName()
     returns "byte"
 (new Object[3]).getClass().getName()
     returns "[Ljava.lang.Object;"
 (new int[3][4][5][6][7][8][9]).getClass().getName()
     returns "[[[[[[[I"
 

返回:
此对象所表示的类或接口名。

你可能感兴趣的:(java基础)