You cannot use a wildcard like this, since the second parameter depends on the first! Your version implies that you want to take a collection of apples and then apply a banana predicate to it.
: -unkown type; :
static <T extends Number> long count(Collection<T> numbers, Predicate <T> predicate) {
: count()
; , . , , int, () .