[英]Trying to save values to class Object
我過去發布了一個問題,但沒有得到任何回復,所以我假設我的問題不清楚。 我們可以在不定義列數的情況下定義 new Object[3][] 嗎? 希望以下代碼更具可讀性和易於理解。
問:為什么 retval[0] 總是 null?
請幫忙。 謝謝,
package YTesting1.YTesting1;
import org.testng.annotations.Test;
public class Test1 {
@Test
public void MyTest() {
Object[][] retval = new Object[1][];
String mm = "Hello";
String o = "World";
String s = "Yeaah";
(new Object[1])[0] = new Test2(mm, o, s);
retval[0] = new Object[1];
System.out.println("retval = " +retval[0]);
}
}
package YTesting1.YTesting1;
public class Test2 {
private String str1 = "";
private String str2 = "";
private String str3= "";
public Test2(String lstr1, String lstr2, String lstr3){
this.str1 = lstr1;
this.str2 = lstr2;
this.str3 = lstr3;
}
}
retval[0]
不是 null,它被分配給一個空數組 Object。
可以將另一個數組分配給retval[0]
並填充它而不指示列數
public static void main(String ... args) {
Object[][] retval = new Object[1][];
String mm = "Hello";
String o = "World";
String s = "Yeaah";
//(new Object[1])[0] = new Test2(mm, o, s);
retval[0] = new Object[1];
System.out.println("retval[0] = " + retval[0]);
System.out.println("retval[0][0] = " +retval[0][0]);
System.out.println("retval = " + Arrays.deepToString(retval));
retval[0] = new String[] { // 3-element string array
mm, o, s
};
System.out.println("retval[0] = " + retval[0]);
System.out.println("retval[0][0] = " +retval[0][0]);
System.out.println("retval = " + Arrays.deepToString(retval));
}
Output:
retval[0] = [Ljava.lang.Object;@5479e3f
retval[0][0] = null
retval = [[null]]
retval[0] = [Ljava.lang.String;@66133adc
retval[0][0] = Hello
retval = [[Hello, World, Yeaah]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.