public @Nullable <T> T as(@NotNull ClassConditionKey<T> conditionKey) {
    //noinspection unchecked
    return conditionKey.isInstance(this) ? (T)this : null;
  }
public @Nullable <T> T as(@NotNull ClassConditionKey<T> conditionKey)