簡體   English   中英

如何在創建對象的方法之外訪問對象數組

[英]How to access array of object outside the method it was created in

我有兩個類,A 和 B。我在類 A 中有一個方法 demo(),它創建一個對象數組,並通過使用以前的整數數組 1 來獲取值 'v3',我將創建數組 1 長度的 'array2'。 因此,使用參數 v1、v2、v3 創建一個 array2 的新對象。 我在 V1/2/3 的 B 類中也有一些 getter/setter。 然后我想訪問每個元素

                   System.out.print(array2[0].getValue1()); 

在方法之外或至少知道它已成功創建,。 但是我通過嘗試打印出一個值立即得到一個錯誤,所以我猜沒有 toString 方法會是問題所在。 我在方法之外創建了一個變量:

         private B[] array2;

然后我調用 main:

  B array2 = new B[array1.length];
  demo();
  System.out.print(array2[0].getValue1());

這是方法

public void demo(){
      int v1= 2;
      int v2= 2;
      int v3= 0;
B[] array2 = new B[array1.length];
for(int x = 0; x<array2.length; x++)
{
     v3 = array1[x];





    array1[x] = new B(v1,v2,v3);
    array1[x].setValue2(v1);
    array1[x].setValue2(v2);
    array1[x].setValue3(v3);


    v1++;
}

看來我也得重申一下

   B[] array2 = new B[array1.length];

在方法中,否則出現錯誤。 這似乎是一個類似的問題

基本上,您創建了兩個B[] array2變量,一個在 demo() 方法之外,另一個在其中。

由於您在 demo() 方法中創建了一個新的B[] array2變量,它不會更新之前在demo()方法之外創建的變量。

因為這個數組(在外部創建的B[] array2 )自創建以來就沒有被修改,所以當你嘗試訪問它里面的元素時,會拋出 NullpointerException。

修復:demo()方法中不要再次創建新數組,而是引用在其外部創建的數組。 所以在第 4 行的demo()方法中它應該是這樣的。

array2 = new B[array1.length];

希望有幫助。

暫無
暫無

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

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