From Effective Java Chapter 5 (generics):
// Two possible declarations for the swap method public static
void swap(List list,
The Java Generics FAQ is a great source to answer these kind of questions and the "wildcard vs. generic" one is discussed at length in Which one is better: a generic method with type parameters or a non-generic method with wildcards? and the subsequent Case Studies.
Angelika Langer comes to the conclusion:
Conclusion: In all these examples it is mostly a matter of taste and style whether you prefer the generic or the wildcard version. There is usually trade-off between ease of implementation (the generic version is often easier to implement) and complexity of signature (the wildcard version has fewer type parameters or none at all).
Simpler method signature -> easier to understand (even if both are used the same way) -> good in public API (tradeoff: more complex implementation)
But the whole thing is a lightweight issue and in my experience is consistency over the whole API much more important than which style you use.