![](/img/trans.png)
[英]how to access Graphics object outside paintComponent() method
[英]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.