### Question:
ProcedureFunction implements Function<A, T> { public T evaluate(A obj) { procedure.run(obj); return null; } ProcedureFunction(Procedure<? super A> procedure); T evaluate(A obj); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static ProcedureFunction<A, T> adapt(Procedure<? super A> procedure);  }### Answer:
@Test public void testEvaluate() throws Exception { Function<Object, Object> f = new ProcedureFunction<Object, Object>(NoOp.INSTANCE); assertNull(f.evaluate(null)); }