[英]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 后跟類/接口名稱)
幾個例子:
Class.forName("[D")
-> 原始雙精度數組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.