Tengo el siguiente código en una clase abstracta java:Java: tipo de retorno polimórfico en un método abstracto?
protected abstract <E extends HasText & IsWidget> E createNewDisplayWidget();
que compila bien. Sin embargo, si la llamo en cualquier lugar, el compilador se queja:
Bound mismatch: The generic method createNewDisplayWidget() of type DemoClass is not applicable for the arguments(). The inferred type HasText is not a valid substitute for the bounded parameter <E extends HasText & IsWidget>
¿Hay una manera de exigir un método abstracto para devolver algo que se debe implementar múltiples interfaces?
Nota: No, no puedo crear una interfaz especial que implemente las dos que me gustan. GWT tiene widgets como Label que ya implementan dichas interfaces y me gustaría usar dicho widget.
Editar: me ocurrió la idea de hacer esto de aquí (página 22):
http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf
¿Has probado con una coma en lugar de una y? – sp00m
una coma significaría que el límite termina en IsWidget. HasText luego se ignora. El compilador lanza una advertencia que dice que el segundo tipo está 'oculto'. – McTrafik
¿Puede mostrarnos uno/algunos de sus sitios de llamadas? –