私はjavaの非クラスメソッドからarraylistを返したいと思いますが、私は検索しましたが、今まで何も見つかりませんでした。arraylistを返すには?
{
int d=e.length();
ArrayList list2 = new ArrayList();
for (int i=0;i<d;i++)
{
list2.add('_');
}
return list2;
}
ありがとう!
私はjavaの非クラスメソッドからarraylistを返したいと思いますが、私は検索しましたが、今まで何も見つかりませんでした。arraylistを返すには?
{
int d=e.length();
ArrayList list2 = new ArrayList();
for (int i=0;i<d;i++)
{
list2.add('_');
}
return list2;
}
ありがとう!
、およびリストを返す
public class Example {
// a static method
public static List someStaticMethod(){
// create and return a List
}
// this method is not static
public List someMethod(){
// create and return a List
}
}
注ArrayList
あなたは戻り値の型のいずれか、それらのいずれかを行うことができますList
拡張ので、その。
List
より一般的な場合は、のリストタイプを返すことができます。これは、使用する内部リスト(ArrayList
からLinkedList
への変更など)を変更する場合は、メソッドを使用するたびにAPIを変更する必要がないため、便利です。
List
インターフェイスで定義されていない独自のメソッドを持つリスト実装を使用すると、メソッドからリストを取得したときにそのメソッドにアクセスすることはできません。 (ewe)、または正確な戻り値の型を指定します。
私はまだこれをテストする機会がありませんが、私はそれが動作していると信じています。参考までに、私の質問には何か誤りがありました。私はまだ正しい答えを得ることができて驚いています。どうもありがとうございました! –
すべてのメソッドは、静的メソッドまたはインスタンスメソッドのいずれかである必要があります。クラスまたはそのインスタンスの1つが所有しています。 CやC++のようなものではなく、クラスの外にある関数を持つことができます。
ただし、静的インポートを行うことはできます。
public class UtilClass {
public static ArrayList getList() { ... return someList; }
}
import static UtilClass.getList;
これは、それを多かれ少なかれそれを扱うことができます。ただし、クラスの一部としてがと定義され、静的である必要があります。
EDIT:この例ではgetListを静的にするのを忘れていました。そして、あなたがする必要があるのは、署名に戻り値の型を入れて
おそらくgetList()メソッドはこれを動作させるために静的宣言する必要がありますか? – Andy
あなたのメソッド定義は、次のようなものでなければなりません。
public ArrayList<Character> getCharList(String e)
{
int d = e.length();
// as of Java 1.5, generic collections are available
ArrayList<Character> list2 = new ArrayList<Character>();
for (int i=0;i<d;i++) {
list2.add(new Character('_'));
}
return list2;
}
文字列に対してlength()メソッドを呼び出していると仮定しました。あなたの状況に適応してください。
は、あなたのリストを取得するには、実行します。
String e = "a string";
ArrayList<Character> myList = myClass.getCharList(e);
データの任意の型を返すことができないvoid
である任意の方法、しかし、あなただけの方法が可能に型を返すことができます。たとえば、public int
で始まるメソッドは、int
という値を返すだけです。 ArrayListのを返すには、あなたの方法は、宣言の中にArrayList
を含める必要があり、そのような:
public ArrayList thisReturnsAnArrList(ArrayList list) {
return list; //'list' is of the type 'ArrayList'
}
しかし、あなたはより厳密で、メソッドがList
を返すことができます。複数のクラスはList
(つまりArrayList
とLinkedList
)を継承しているため、List
に拡張された値を返すことができます。
あなたのコードで既に返されているようです。実際の問題は何ですか? –
Javaでは*非クラスメソッド*とは何ですか? Javaのすべてのメソッドはクラスに属します。 –
非クラスメソッドですか?どうか明らかにしてください。静的メソッドを意味しますか?メソッドの署名はどこにありますか? – Jules