返回arraylist的Java返回方法?

新手上路,请多包涵

我有一节课,方法是这样的:

 public ArrayList<Integer> myNumbers()    {
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(11);
    numbers.add(3);
    return(numbers);
}

我怎样才能在另一个类中调用这个方法?

原文由 Nikhil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 770
2 个回答

1. 如果您要从中调用此方法的类位于同一个包中,则创建此类的实例并调用该方法。

2. 使用 Composition

3. 最好有一个 Generic ArrayListArrayList<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.
 }

}

原文由 Kumar Vivek Mitra 发布,翻译遵循 CC BY-SA 3.0 许可协议

假设你有这样的事情:

 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();
    ...
}

由于您尝试调用的方法不是 static ,因此您必须创建提供此方法的类的实例。创建实例后,您就可以访问该方法。

请注意,在上面的代码示例中,我使用了这一行: 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 接口的任何内容。

原文由 npinti 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏