2013-12-12 142 views
2

我正在嘗試使用Java來執行以下操作,這是允許的嗎?的給arraylist另一個arraylist的值JAVA

import java.util.ArrayList; 
class Apple { 
    void makeAppleArrayList() { 
     ArrayList<String> appleArrayList = new ArrayList<String>(); 
     appleArrayList.add("apple"); 
     Banana b = new Banana(); 
     b.copyAppleArrayList(appleArrayList); 
    } 
} 

import java.util.ArrayList; 
class Banana { 
    ArrayList<String> bananaArrayList = new ArrayList<String>(); 
    void copyAppleArrayList(ArrayList<String> arrayList) { 
     bananaArrayList = arrayList; 
    } 
} 
+2

你可以試試。 –

+0

你應該嘗試一下。雖然在你的例子中Banana只會引用Apple的ArrayList。一旦你修正了你的編譯錯誤,當然。你有沒有考慮過'addAll'? –

+0

我的壞插入,只是注意到 –

回答

2

好反而讓蘋果香蕉的實例,你爲什麼不使香蕉蘋果的一個實例,只是這樣做:

Apple apple = new Apple(); 
bananaArrayList = apple.appleArrayList; 

那麼既然它是一個函數內部創建初始化它在像這樣的構造函數中:

public class Apple{ 
public ArrayList<Perk> appleArrayList; 

public PerkGenerator() { 
     this.appleArrayList = new ArrayList(); 

而且如果你這樣做,就沒有必要在函數內部做它。但是如果你仍然想在一個函數中做到這一點。只需保留該代碼即可。而做到這一點蘋果內部:

public ArrayList makeApple(){ 
    ArrayList apples = new ArrayList(); 
    return apples; 

然後香蕉裏面你這樣做:

bananaArrayList = apple.makeApple 

這工作,因爲讓蘋果函數返回一個ArrayList :) 這裏是返回值的一些信息從方法:) http://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html

希望我能幫助:)

+0

嗯,我不知道這可以做,謝謝你的提示! –

+0

:)任何時候很高興幫助 – TastyLemons

+0

我剛剛注意到,在apple中,applearraylist是在方法中聲明的,它是否仍然可以像你顯示的那樣調用? –

相關問題