簡體   English   中英

試圖將值保存到 class Object

[英]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.

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