I like using hamcrest in my tests, but it has depressed me more than once how Java's generic typing rules force hamcrest to make odd typing choices. I've never investigated thoroughly, however. Luckily, someone else has.
There are many problems with generics but this is not one: it's a misunderstanding of the relationship between generics and reflection and how jMock needs to use matchers.