繁体   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