docs: @ArgumentsChecked
  	@Throws({ IllegalNullArgumentException.class, IllegalInstanceOfArgumentException.class })
  	@SuppressWarnings("unchecked")
  	public static <T> T instanceOf(@Nonnull final Class<?> type, @Nonnull final Object obj, @Nullable final String name) {
  		Check.notNull(type, "type");
  		Check.notNull(obj, "obj");
  		if (!type.isInstance(obj)) {
  			throw new IllegalInstanceOfArgumentException(name, type, obj.getClass());
  		}
  		return (T) obj;
  	}