Sometimes, covariant return types (= methods overriding existing methods which return a sub-type) can bite you. Especially when you want them to have annotations.
Ralf Stuckert wrote a good blog post about the reasons: The Covariant Return Type Abyssal