public class Table<Key extends Comparable<Key>, Value> {
/*
* The purpose of entry is to glue together a key and a value
*
* The class that we use for Key has to implement comparable
* */
private class Entry<Key extends Comparable<Key>, Value> implements Comparable<Entry>
{
Key key;
Value value;
public Entry(Key k, Value v)
{
key = k;
value = v;
}
public int compareTo(Entry<Key,Value> entry)
{
return key.compareTo(entry.key);
}
}
private BST<Table.Entry<Key, Value>> tree = new BST<Table.Entry<Key, Value>>();
//must supply public methods for the three operations
public Value lookUp(Key key)
{
Entry<Key, Value> e = new Entry<Key, Value>(key, null);
return tree.search(e).value;
}
public boolean insert(Key k, Value v)
{
return tree.insert(new Entry<Key, Value>(k, v));
}
public boolean delete(Key k)
{
//we haven't written a delete method for bst yet.
return tree.delete(new Entry(k, null));
}
}
上記は、私の教授が授業で扱っていたテーブル抽象データ型のクラス宣言です。Javaが次のエラーメッセージを表示する理由を理解しようとしています
生の型で与えられた型引数
ここで変数を宣言すると
private BST<Table.Entry<Key, Value>> tree = new BST<Table.Entry<Key, Value>>();
Javaの生の型とは何ですか? ジェネリック クラスの作成について説明しました。それと関係ありますか?