### Question:
IsInstance implements BinaryPredicate<T, Class<?>> { public static <T> Predicate<T> of(Class<?> clazz) { return RightBoundPredicate.bind(new IsInstance<T>(), clazz); }  boolean test(T left, Class<?> right); @Override boolean equals(Object that); @Override int hashCode(); @Override String toString(); static IsInstance<T> instance(); static Predicate<T> of(Class<?> clazz); static final IsInstance<Object> INSTANCE; }### Answer:
@Test public void testBoundEquals() throws Exception { Predicate<Object> p = IsInstance.of(Object.class); assertEquals(p,p); assertObjectsAreEqual(p,IsInstance.of(Object.class)); assertObjectsAreNotEqual(p,Constant.truePredicate()); assertObjectsAreNotEqual(p,IsInstance.of(null)); assertObjectsAreNotEqual(p,IsInstance.of(String.class)); }