¿Cómo no lanzar una excepción genéricamente especificada?
Creé una interfaz de "productor" (para ser utilizada con referencias de métodos, respectivamente, para burlarse fácilmente de las pruebas unitarias):
@FunctionalInterface
public interface Factory<R, T, X extends Throwable> {
public R newInstanceFor(T t) throws X;
}
que creé así, ya que mi primer caso de uso en realidad tuvo que arrojar algunos marcadosWhateverException
.
Pero mi segundo caso de uso no tiene una X para lanzar.
Lo mejor que se me ocurrió para hacer feliz al compilador es:
Factory<SomeResultClass, SomeParameterClass, RuntimeException> factory;
Eso compila y hace lo que necesito, pero sigue siendo feo. ¿Hay alguna manera de mantener esa interfaz única, pero no proporcionar una X al declarar instancias específicas?