什么是Ljava.lang.String; @

时间:2012-03-26 07:56:49

标签: java arrays string

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

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

然后我做了以下事情:

String checked = Arrays.toString(Employee.getSelectCancel());

我也尝试了Arrays.asList()Arrays.copyOf()

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

6 个答案:

答案 0 :(得分:66)

如果提供数组,方法

的输出
String[] helloWorld = {"Hello", "World"};
System.out.println(helloWorld);
System.out.println(Arrays.toString(helloWorld));

[Ljava.lang.String;@45a877
[Hello, World]

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

请告诉我们Employee.getSelectCancel()

的返回类型

答案 1 :(得分:19)

返回

Ljava.lang.String;@,其中您使用字符串数组作为字符串。 Employee.getSelectCancel()似乎没有返回String[]

答案 2 :(得分:5)

根据Java虚拟机规范(Java SE 8),JVM §4.3.2. Field Descriptors

FieldType term | Type      | Interpretation
-------------- | --------- | --------------
L ClassName ;  | reference | an instance of class ClassName
[              | reference | one array dimension
...            | ...       | ...

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

答案 3 :(得分:5)

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

几个例子:

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

符号列表:
元素类型:符号
布尔值:Z
字节:B
字符:C
类或接口:Lclassname
双:D
浮动:F
内部:我
长:J
短:S

答案 4 :(得分:0)

当我为Android应用程序制作ListView时,我也遇到了这个问题:

Map<String, Object> m;

for(int i=0; i < dates.length; i++){
    m = new HashMap<String, Object>();
    m.put(ATTR_DATES, dates[i]);
    m.put(ATTR_SQUATS, squats[i]);
    m.put(ATTR_BP, benchpress[i]);
    m.put(ATTR_ROW, row[i]);
    data.add(m);
}

问题是我忘了在循环中使用[i]索引

答案 5 :(得分:0)

我也遇到了同样的问题: 我制定了自己的方法: 所以如果我要调用这样的方法:

Show("Additional String like this:"+ MyArray);//wrong command

有错误! 它必须没有“像这样的附加字符串:” 就这样做:

Show(AnyArray);//right command

package j;

class J{
public static String [] AnyArray = new String[3];

public static void main(String[] args) {

AnyArray[0]="String_0";
AnyArray[1]="String_1";
AnyArray[2]="String_2";

/******************************************************/
Show(AnyArray); //right
/*****************************************************/
Show("Additional String like this"+AnyArray);//wrong
/****************************************************/
}


public static void Show(String[] MyArray)
{
for(int i=0;i<=MyArray.length-1;i++){
System.out.println("MyArray ["+i+"]: "+MyArray[i]+"");
 }
}



public static void Show(String MyString)
{
System.out.println(MyString);
 }

}