我有一類這樣的方法:Java返回數組列表的返回方法?
public ArrayList<Integer> myNumbers() {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(11);
numbers.add(3);
return(numbers);
}
我怎麼能叫另一個類中這個方法?
我有一類這樣的方法:Java返回數組列表的返回方法?
public ArrayList<Integer> myNumbers() {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(11);
numbers.add(3);
return(numbers);
}
我怎麼能叫另一個類中這個方法?
如果您要從調用這個方法的類,是在同一個包,然後創建該類的一個實例並調用該方法。
2.使用Composition
這將是最好有一個Generic ArrayList
像ArrayList<Integer>
等...
如:
public class Test{
public ArrayList<Integer> myNumbers() {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(11);
numbers.add(3);
return(numbers);
}
}
public class T{
public static void main(String[] args){
Test t = new Test();
ArrayList<Integer> arr = t.myNumbers(); // You can catch the returned integer arraylist into an arraylist.
}
}
您需要實例化它所包含的類,或使該方法爲靜態。
所以,如果它包含類Foo中:
Foo x = new Foo();
List<Integer> stuff = x.myNumbers();
或可替代的簡寫:
List<Integer> stuff = new Foo().myNumbers();
,或者如果你把它的靜態像這樣:
public static List<Integer> myNumbers() {
List<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(11);
numbers.add(3);
return(numbers);
}
你可以調用它是這樣的:
List<Integer> stuff = Foo.myNumbers();
如果美孚是階級封閉這種方法
class Foo{
public ArrayList<Integer> myNumbers() {
//code code code
}
}
然後
new Foo().myNumbers();
MyClass obj = new MyClass();
ArrayList<Integer> numbers = obj.myNumbers();
你可以在另一個上使用類
public ArrayList<Integer> myNumbers = new Foo().myNumbers();
或
Foo myClass = new Foo();
public ArrayList<Integer> myNumbers = myclass.myNumbers();
假設您有類似這樣:
public class MyFirstClass {
...
public ArrayList<Integer> myNumbers() {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(11);
numbers.add(3);
return(numbers);
}
...
}
您可以調用該方法,像這樣:
public class MySecondClass {
...
MyFirstClass m1 = new MyFirstClass();
List<Integer> myList = m1.myNumbers();
...
}
既然你是方法試圖打電話不是靜態,您將不得不創建提供此方法的類的實例。一旦你創建了實例,你就可以訪問該方法。
請注意,在上面的代碼示例中,我使用了這一行:List<Integer> myList = m1.myNumbers();
。這可以通過以下來改變:ArrayList<Integer> myList = m1.myNumbers();
。但是,通常建議以編程爲一個接口,而不是一個具體的實現,所以我對你的使用會做一些像這樣的方法建議:
public List<Integer> myNumbers() {
List<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(11);
numbers.add(3);
return(numbers);
}
這將允許您指定該列表的內容無論如何實現List
接口。
List<Integer> numbers = new TheClassName().myNumbers();
你的方法被調用,數組列表可以存儲這樣
YourClassName class = new YourClassName();
Arraylist<Integer> numbers = class.numbers();
這也使的ArrayList在這個類
進一步被操縱我想你的意思'ARR = T .myNumbers();'? – npinti 2012-07-27 06:07:53