Interface { public static Interface of(@Nonnull final Class<?> interfaceType) { Check.notNull(interfaceType, "interfaceType"); Check.stateIsTrue(interfaceType.isInterface(), "requires an interface"); return new Interface(Type.of(interfaceType)); } Interface();  Interface(final Type interfaceType); static Interface of(@Nonnull final Class<?> interfaceType); static Interface of(@Nonnull final String interfaceType); @Override boolean equals(final Object obj); Type getType(); @Override int hashCode(); @Override String toString(); static final Interface UNDEFINED; }
@Test(expected = IllegalStateOfArgumentException.class) public void construct_withoutInterface() { Interface.of(String.class); }