什么是Ljava.lang.String; @

Sri*_*har 53 java arrays string

我有一个selectCancel带有setter和getter方法的字符串数组,这是我表单中的一个复选框.我正在尝试获取已检查的值,并且在打印时获得上述结果.

我尝试了这个Arrays.toString()方法,但它仍然打印相同.

然后我做了以下事情:

String checked = Arrays.toString(Employee.getSelectCancel());
Run Code Online (Sandbox Code Playgroud)

我也试过Arrays.asList()Arrays.copyOf()

那么,我该如何阅读这个字符串?

And*_*s_D 70

如果提供数组,则该方法有效.的输出

String[] helloWorld = {"Hello", "World"};
System.out.println(helloWorld);
System.out.println(Arrays.toString(helloWorld));
Run Code Online (Sandbox Code Playgroud)

[Ljava.lang.String;@45a877
[Hello, World]
Run Code Online (Sandbox Code Playgroud)

(之后的数字@几乎总是不同)

请告诉我们返回的类型 Employee.getSelectCancel()


anv*_*rik 21

Ljava.lang.String;@返回使用字符串数组作为字符串的地方.Employee.getSelectCancel()似乎没有返回String[]


小智 6

[代表一维数组
Ljava.lang.String代表字符串类(L后跟类/接口名称)

几个例子:

  1. Class.forName("[D") -> 原始双精度数组
  2. Class.forName("[[Ljava.lang.String") -> 二维字符串数组。

符号列表:
元素类型:符号
布尔值:Z
字节:B
char:C
类或接口:Lclassname
double:D
float:F
int:I
long:J
short:S


Min*_*ang 5

根据Java虚拟机规范(Java SE 8),JVM§4.3.2。字段描述符

FieldType term | Type      | Interpretation
-------------- | --------- | --------------
L ClassName ;  | reference | an instance of class ClassName
[              | reference | one array dimension
...            | ...       | ...
Run Code Online (Sandbox Code Playgroud)

该表达式[Ljava.lang.String;@45a877表示这是[类java.lang.String(Ljava.lang.String;)的数组()。并且@45a877是String对象存储在内存中的地址。