Wicket 8 wicket setDefaultModel enfrentamientos con setDefaultModel

mrkernelpanic:

Después de la actualización de Wicket 7 a Wicket 8, I encounterd múltiples advertencias de borrado en IntelliJ.

Por ejemplo, cuando se utiliza AjaxLinkIntelliJ se queja

'SetDefaultModel (modelo IModel)' en enfrentamientos 'org.apache.wicket.MarkupContainer' con 'setDefaultModel (modelo IModel)' en 'org.apache.wicket.IGenericComponent'; Ambos métodos han borrado misma embargo, ni anula la otra

¿Hay algo que pueda hacer al respecto?

Jeroen Steenbeeke:

Este error se produce cuando no se da AjaxLinkun tipo genérico. El error se produce cuando se hace:

new AjaxLink("id")

En lugar de algo así como:

new AjaxLink<Void>("id")

AjaxLink tiene la siguiente definición:

public abstract class AjaxLink<T> extends AbstractLink implements IAjaxLink, IGenericComponent<T, AjaxLink<T>>

La clase ancestro es MarkupContainer, que define:

public MarkupContainer setDefaultModel(final IModel<?> model)

Y se pone en práctica IGenericComponent, que tiene los tipos genéricos <T, C extends IGenericComponent<? super T, ?>>que se asignan los tipos <T,AjaxLink<T>>y define el método:

Component setDefaultModel(IModel<?> model);

Ahora, no estoy del todo seguro si entiendo completamente el problema, pero de alguna manera debido a la falta de tipos genéricos, el compilador no puedo entender que la aplicación de MarkupContainer(que regresa MarkupContainer) es covariante con el método definido en IGenericComponent.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=119327&siteId=1
Recomendado
Clasificación