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));
}
}
The above is a class declaration for a table abstract data type that my professor was going over in class. I've been trying to figure out why does Java give me the following error message
Type arguments given on raw type
When I declare my variable here
private BST<Table.Entry<Key, Value>> tree = new BST<Table.Entry<Key, Value>>();
What are raw types in java? We've discussed writing generic classes. Is it related to that?