import java.util.Set; class Test { @SuppressWarnings("unchecked") public void someMethod(final Set set) { when(set) .thenAnswer(invocationOnMock -> union(set, (Set) invocationOnMock.getArguments()[0])); } static OngoingStubbing when(T methodCall) { return answer -> null; } interface OngoingStubbing { OngoingStubbing thenAnswer(Answer answer); } interface Answer { T answer(InvocationOnMock invocation) throws Throwable; } interface InvocationOnMock { Object[] getArguments(); } static Set union(final Set set1, final Set set2) { return null; } }