tengo tres interfaces genéricas (con una relación inversas entre dos de ellos) y quiero procesarlos en un método recursivo:Trabajar con Recursión y genéricos Interfaces
public interface User<R extends Role<R,U>, U extends User<R,U>>
{
public R getRole();
public void setRole(R role);
}
public interface Role<R extends Role<R,U>,U extends User<R,U>>
{
public List<R> getRoles();
public void setRoles(List<R> roles);
public List<U> getUser() ;
public void setUser(List<U> user);
}
Ahora quiero hacer algo de procesamiento con una recursividad en mi clase Worker
:
public <R extends Role<R,U>,U extends User<R,U>> void recursion(List<R> roles)
{
for(R role : roles)
{
recursion(role.getRoles());
}
}
consigo este error y estoy no descubierto por qué esto no funciona o cómo puedo solucionar esto:
Bound mismatch: The generic method recursion(List<R>) of type Worker is not
applicable for the arguments (List<R>). The inferred type User<R,User<R,U>>
is not a valid substitute for the bounded parameter <U extends User<R,U>>
estoy seguro acerca de la implicación de cambiar el método de interfaz para 'Role'. Supongo que devuelve una Lista de la interfaz de 'Role'. Estoy usando las interfaces para algunas implementaciones de '@ Entity'. El método recursivo se usa en una clase de utilidad, quizás la propuesta de comodín '?' De dacwe sea adecuada para mí. – Thor