車輪の再発明のように聞こえるかもしれませんが、マップを実装しようとしています (のようにMap<K,V>
)。クラスには、以下のコードの短縮バージョンsortedKey()
を返す関数が呼び出されます。ArrayList<K>
コメントとしてインラインでデバッグする試みを含めました。
import java.util.ArrayList;
import java.util.Collections;
public class Map<K,V> {
private ArrayList<Pair<K,V> > array; //Pair<K,V> is a class defined in another file.
//returns an ArrayList(of proper type) of keys (ie, the desired function)
public ArrayList<K> sortedKeys(){
ArrayList<K> ret = keys(); //another method defined inside same class
K s = ""; // error: no suitable method found for sort(ArrayList<K>)
Collections.sort(new ArrayList<String>()); //Works just fine..
Collections.sort(ret); //Same error here..
return ret;
}
}
そのエラーが表示される理由について何か考えはありますか? クラスの作成に使用される型変数に応じて、ジェネリックな戻り値の型を持たせないことはできますか? それとも、目的の効果を得るために何か他のことをしなければなりませんか?
この質問が既に尋ねられている場合は、感謝と謝罪
カジェタン