1voto

Declaracion de clases que usan genéricos en Java

¿La siguiente declaración de clase debería compila o no?, ¿porqué?

public final class Algorithm {
    public static T max(T x, T y) {
        return x > y ? x : y;
    }
}

2 Respuestas

2votos

Peter Puntos150480

No compila, falta la definición de T como generic:

public static <T> T max(T x,T y) ...

Luego de eso el operador > no está definido para clases.

4votos

Si lo que quieres es comparar objetos, no te sirve una clase que implemente genéricos, a no ser que sean "T implements Comparable". Si lo que quieres es comparar tipos primitivos, tampoco te sirve esto, puesto que no son objetos. Si comparas objetos comparables no lo puedes hacer mediante operador, sino que tienes que comparar con el método CompareTo. Todo esto a parte de lo que comenta Peter, que falta la definición de T como genérico.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta