I was taken aback earlier today when debugging some code to find that something like the following does not throw a compile-time exception:
public Test () {
For one thing List is an interface. There is no reason why there couldn't exist a subclass of HashMap which also implements the List interface. In this situation it would be perfectly valid.