17

次のようなメソッドを持つクラスが1つあります。

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

このメソッドを別のクラス内で呼び出すにはどうすればよいですか?

4

8 に答える 8

22

1.このメソッドを呼び出すクラスが同じパッケージにある場合は、このクラスのインスタンスを作成してメソッドを呼び出します。

2.使用するComposition

3.いいね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.
 }


}
于 2012-07-27T05:58:27.457 に答える
9

あなたがそのようなものを持っていると仮定すると:

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ます。

于 2012-07-27T05:59:15.733 に答える
7

含まれているクラスをインスタンス化するか、メソッドを静的にする必要があります。

したがって、クラス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();
于 2012-07-27T05:57:56.143 に答える
2
List<Integer> numbers = new TheClassName().myNumbers();
于 2012-07-27T05:59:47.077 に答える
1

Fooがクラスの場合、このメソッドを囲みます

class Foo{
  public ArrayList<Integer> myNumbers()    {
     //code code code
  }
}

それから

new Foo().myNumbers();
于 2012-07-27T05:58:14.937 に答える
1
MyClass obj = new MyClass();
ArrayList<Integer> numbers = obj.myNumbers();
于 2012-07-27T05:58:30.977 に答える
0

別のクラスで使用できます

public ArrayList<Integer> myNumbers = new Foo().myNumbers();

また

Foo myClass = new Foo();
 public ArrayList<Integer> myNumbers = myclass.myNumbers();
于 2012-07-27T05:59:01.003 に答える
0

メソッドを呼び出すことができ、配列リストを次のように保存できます

YourClassName class = new YourClassName();
Arraylist<Integer> numbers = class.numbers(); 

これにより、このクラスで配列リストをさらに操作することもできます

于 2017-04-16T01:39:13.750 に答える