@SuppressWarnings("unchecked")
  public static @Nullable <T> T as(final @Nullable Object expression, final @NotNull Class<T> cls) {
    if (expression == null) {
      return null;
    }
    if (cls.isAssignableFrom(expression.getClass())) {
      return (T)expression;
    }
    return null;
  }
@SuppressWarnings("unchecked")
  public static @Nullable <T> T as(final @Nullable Object expression, final @NotNull Class<T> cls)