欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

实战演示:如何在Java中运用Verify类

最编程 2024-08-05 18:00:01
...

实例1: TypevarContext

import com.google.common.base.Verify; //导入依赖的package包/类
TypevarContext(TypeElement element, String renderedTypeString) {
  List<? extends TypeParameterElement> typeParameters = element.getTypeParameters();
  if (!typeParameters.isEmpty()) {
    this.arguments = SourceTypes.extract(renderedTypeString).getValue();

    this.parameters = Lists.newArrayList();
    for (TypeParameterElement p : typeParameters) {
      parameters.add(p.getSimpleName().toString());
    }
    // we allow having no arguments in a string as raw type/unspecified argument scenario
    Verify.verify(arguments.isEmpty() || (parameters.size() == arguments.size()), parameters + " =/> " + arguments);
  } else {
    this.parameters = Collections.emptyList();
    this.arguments = Collections.emptyList();
  }
}
 

实例2: signature

import com.google.common.base.Verify; //导入依赖的package包/类
private boolean signature(Statement.Builder builder) {
	Term t = terms.peek();
	if (t.is("@")) {
		do {
			builder.addAnnotations(terms.next());
			Verify.verify(terms.peek().isWordOrNumber());
			builder.addAnnotations(terms.next());
		} while (terms.peek().is("."));

		if (terms.peek().is("(")) {
			builder.addAllAnnotations(collectUntilMatching(")"));
		}
		return false;
	} else if (t.is("<")) {
		builder.addAllSignature(collectUntilMatching(">"));
		return false;
	} else if (t.is("class")) {
		builder.addSignature(terms.next());
		return true;
	} else {
		builder.addSignature(terms.next());
		return false;
	}
}
 

实例3: await

import com.google.common.base.Verify; //导入依赖的package包/类
/** Waits for the supplier to return a present value. */
private <T> T await(Supplier<Optional<T>> compute) throws IOException {
  AtomicReference<T> result = new AtomicReference<>();
  BooleanSupplier condition =
      () -> {
        Optional<T> value = compute.get();
        if (value.isPresent()) {
          result.set(value.get());
        }
        return value.isPresent();
      };
  try {
    monitor.enterWhen(monitor.newGuard(condition));
  } catch (InterruptedException e) {
    Thread.currentThread().interrupt();
    throw new IOException(e);
  }
  try {
    return Verify.verifyNotNull(result.get());
  } finally {
    monitor.leave();
  }
}
 

实例4: from

import com.google.common.base.Verify; //导入依赖的package包/类
/**
 * Classifies an identifier's case format.
 */
static JavaCaseFormat from(String name) {
    Verify.verify(!name.isEmpty());
    boolean firstUppercase = false;
    boolean hasUppercase = false;
    boolean hasLowercase = false;
    boolean first = true;
    for (int i = 0; i < name.length(); i++) {
        char c = name.charAt(i);
        if (!Character.isAlphabetic(c)) {
            continue;
        }
        if (first) {
            firstUppercase = Character.isUpperCase(c);
            first = false;
        }
        hasUppercase |= Character.isUpperCase(c);
        hasLowercase |= Character.isLowerCase(c);
    }
    if (firstUppercase) {
        return hasLowercase ? UPPER_CAMEL : UPPERCASE;
    } else {
        return hasUppercase ? LOWER_CAMEL : LOWERCASE;
    }
}
 

推荐阅读