0

値のリストを返す関数があります。そのリストの値を別の関数のパラメーターとして使用したいと考えています。

private static List test(){
    List myList;
    mylist.add(1);
    return myList;
};

これがキャッチです。私が言ったら

lst = test();
myFunction(lst.get(1));

lst.get(1)型オブジェクトです。ただしmyFunction、int が必要です。色々と入れてみました。(int) lst.get(1);私のコンパイラがこのエラーを返すと言ったとき:

C:\Users\...\workspace\...\....txt
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
    at ///.///.Encode(///.java:73)
    at ///.///.main(///.java:25)

キャストなしでそれを持っていると、この赤い下線とエラーが表示されます:

The method ENCODEScrambleNum(int, int, int, int, String) in the type kriptik is not applicable for the arguments (Object, Object, Object, Object, String)

メソッドの署名:

ENCODEScrambleNum(int, int, int, int, String)

それを呼び出す:

ENCODEScrambleNum(key.get(0), key.get(1), key.get(2), key.get(3), str);

リストの型が int になることを事前にコンピュータに伝える方法はありますか?

ありがとう。

4

3 に答える 3

2
private static List test(){
    List myList;
    mylist.add(1);    //Here the value 1 is added at zeroth index.
    return myList;
}

コードを次のように置き換えます

lst = test();
myFunction(lst.get(0));  //Retrieves the value at zeroth index.

それ以外の、

lst = test();
myFunction(lst.get(1)); //Retrieves the value at first index

Listインデックスは から0ではなく から始まるため1です。

于 2013-10-11T04:16:44.760 に答える
2

ああ、あなたはそれを行うことができます。このようにリストの型を宣言するだけで

private static List<Integer> test(){
    //List<Integer> myList; // list is not initialized yet(NPE is waiting for you)
    List<Integer> myList = new ArrayList<Integer>(); // List initialized
    mylist.add(1);
    return myList;
} // Why was a semi-colon here?

list.get(1)パラメータとして送信しようとするとint、自動ボックス化されます。そのため、心配する必要はありません。

于 2013-10-11T04:07:19.680 に答える
0

リストのタイプを整数として指定し、get() 関数を使用すると、常に整数が返されます。以下のコードを試してみました。

private static List<Integer> test(){

List<Integer> myList = new ArrayList<Integer>(); 
for(int i=0; i<4; i++){ myList.add(i+10);} //included a for loop just to put something in the list
return myList;
}

private static String ENCODEScrambleNum(Integer get, Integer get0, Integer get1, Integer get2, String in_here) {
     return "I am " + in_here + " with list items-" + get + get0 + get1 + get2; //Dummy logic
}
于 2013-10-11T06:17:44.667 に答える