Ааа, пропустил это. Согласовано. Благодарю.

дал интерфейс «продюсер» (который будет использоваться со ссылками на методы, соответственно, чтобы его можно было легко смоделировать для модульных тестов):

@FunctionalInterface
public interface Factory<R, T, X extends Throwable> {
    public R newInstanceFor(T t) throws X;
}

который я создал таким образом, так как мой первый вариант использования фактически должен был бросить некоторые проверенныеWhateverException.

Но мой второй вариант использования не имеет X, чтобы бросить.

Лучшее, что я мог придумать, чтобы сделать компилятор счастливым:

Factory<SomeResultClass, SomeParameterClass, RuntimeException> factory;

Это компилирует и делает то, что мне нужно, но все равно безобразно. Есть ли способ сохранить этот единственный интерфейс, но не предоставлять X при объявлении конкретных экземпляров?

Ответы на вопрос(6)

Ваш ответ на вопрос