¿Por qué es Predicate <? super SomeClass> no aplicable a Object?

Supongamos que tenemos un predicado declarado comoPredicate<? super SomeClass>. Ingenuamente esperaría que sea aplicable a cualquier superclase deSomeClass arriba de la jerarquía, incluyendoObject.

Sin embargo, este predicado no es aplicable aObject. Obtuve el siguiente error

La prueba del método (captura # 3-de? Super SomeClass) en el tipo Predicate no es aplicable para los argumentos (Object)

Manifestació.

Por que esPredicate<? super SomeClass> no aplicable a una instancia deObject?

El código

import java.util.*;
import java.lang.*;
import java.io.*;
import java.net.URL;
import java.util.function.Predicate;


/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Predicate<? super URL> p = u -> u.getFile().isEmpty();
        p.test(new Object());
    }
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta