簡體   English   中英

什么是 Ljava.lang.String;@

[英]what is Ljava.lang.String;@

我有一個帶有 setter 和 getter 方法的字符串數組selectCancel ,它是我表單中的一個復選框。 我正在嘗試獲取已檢查的值,並且在打印時得到了上述結果。

我嘗試了Arrays.toString()方法,但它仍然打印相同的內容。

然后我做了以下事情:

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

我也嘗試過Arrays.asList()Arrays.copyOf()

那么,我如何讀取這個字符串?

如果您提供數組,則該方法有效 的輸出

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

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

@后面的數字幾乎總是不同的)

請告訴我們Employee.getSelectCancel()的返回類型

Ljava.lang.String;@在您使用字符串數組作為字符串的地方返回。 Employee.getSelectCancel()似乎沒有返回String[]

根據 Java 虛擬機規范 (Java SE 8), JVM §4.3.2。 字段描述符

 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 對象在內存中的存儲地址。

[代表一維數組
Ljava.lang.String代表字符串類(L 后跟類/接口名稱)

幾個例子:

  1. Class.forName("[D") -> 原始雙精度數組
  2. Class.forName("[[Ljava.lang.String") -> 二維字符串數組。

符號列表:
元素類型:符號
布爾值:Z
字節:B
字符:C
類或接口:Lclassname
雙 : D
浮動:F
內部:我
長:J
短褲

我在為 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]索引

我有同樣的麻煩:我自己制作方法:所以如果我要調用這樣的方法:

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);
 }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM