我有一类这样的方法: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