次のようなメソッドを持つクラスが1つあります。
public ArrayList<Integer> myNumbers() {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(11);
numbers.add(3);
return(numbers);
}
このメソッドを別のクラス内で呼び出すにはどうすればよいですか?
次のようなメソッドを持つクラスが1つあります。
public ArrayList<Integer> myNumbers() {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(5);
numbers.add(11);
numbers.add(3);
return(numbers);
}
このメソッドを別のクラス内で呼び出すにはどうすればよいですか?
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.
}
}
あなたがそのようなものを持っていると仮定すると:
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
ます。
含まれているクラスをインスタンス化するか、メソッドを静的にする必要があります。
したがって、クラス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();
List<Integer> numbers = new TheClassName().myNumbers();
Fooがクラスの場合、このメソッドを囲みます
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();
メソッドを呼び出すことができ、配列リストを次のように保存できます
YourClassName class = new YourClassName();
Arraylist<Integer> numbers = class.numbers();
これにより、このクラスで配列リストをさらに操作することもできます