### Question:
CompositeFunction implements Function<A, T> { public final T evaluate(A obj) { return function.evaluate(obj); } CompositeFunction(Function<? super A, ? extends T> function); private <X> CompositeFunction(Function<? super X, ? extends T> following,
            Function<? super A, ? extends X> preceding); final T evaluate(A obj); final CompositeFunction<P, T> of(Function<? super P, ? extends A> preceding); @Override final boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testEvaluate() throws Exception { assertEquals(Integer.valueOf(4),(new CompositeFunction<Object, Integer>(Constant.of(4))).evaluate(null)); assertEquals(Integer.valueOf(4),(Composite.function(Constant.of(4)).of(Constant.of(3)).evaluate("xyzzy"))); assertEquals(Integer.valueOf(3),(new CompositeFunction<Object, Integer>(Constant.of(3)).of(Constant.of(4)).evaluate("xyzzy"))); }