全路径名: com.google.common.base ** Preconditions** 简介 简单的静态类,在自己的方法调用之前验证参数和状态。
问题描述: 初始化Hive仓库报错Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument (ZLjava/lang/String;Ljava/lang/Object;)V 解决方案(过程): com.google.common.base.Preconditions.checkArgument
一般项目都会有自己的一套异常处理方式,sharding-jdbc也不以外,sharding-jdbc源码处理异常的方式主要有下面2种方式: Preconditions 自定义异常 1. Preconditions google-guava的Preconditions用于条件检查,不符合预期的话则抛出异常,并可以重写异常信息。 google-guava源码中Preconditions的注释如下: Static convenience methods that help a method or constructor check whether it was invoked correctly (whether its preconditions have been met). When false (or null) is passed instead, the Preconditions method throws an unchecked exception, which
} /** * 获取索引对应的别名 */ public static Set<String> getAlias(String index) { Preconditions.checkNotNull @param alias 别名 */ public static boolean addAlias(String index, String... alias) { Preconditions.checkNotNull (index); Preconditions.checkNotNull(alias); final IndexOperations indexOps = elasticsearchRestTemplate.indexOps @param alias 别名 */ public static boolean delAlias(String index, String... alias) { Preconditions.checkNotNull (index); Preconditions.checkNotNull(oldAlias); Preconditions.checkNotNull(newAlias);
因此,我们来定义一下这两种结构: 可拆分的类型: import com.google.common.base.Preconditions; import com.google.common.base.Strings (content); Preconditions.checkNotNull(beanCopier); this.content = newEmptyContentInstance(); //region get/set field @Override public synchronized Object getField(String fieldName) { Preconditions.checkArgument dirtyFieldNames.clear(); return list; } //endregion } 不可拆分的类型: import com.google.common.base.Preconditions (content); Preconditions.checkNotNull(beanCopier); this.content = newEmptyContentInstance();
preConditions 只有满足了preConditions中的先决条件,Liquibase才会运行相应的配置 譬如我们只想在h2中使用,可以这样配置: <databaseChangeLog> <preConditions> <dbms type="h2"></dbms> </preConditions> </databaseChangeLog> preConditions 还有其他的很多选项可以使用,如<runningAs> <columnExists> <tableExists>等, 有兴趣的可以自行查看官网preconditions介绍来获取更全的内容 preConditions 决定是否执行 下面是一个官网上的例子,只有当表中数据为空时才把table drop掉 <changeSet id="1" author="bob"> <preConditions onFail= > <dbms type="h2"/> </preConditions> <include file="classpath:config/liquibase/changelog
(taskManagerRequestTimeout); this.slotRequestTimeout = Preconditions.checkNotNull(slotRequestTimeout ); this.taskManagerTimeout = Preconditions.checkNotNull(taskManagerTimeout); } public = Preconditions.checkNotNull(taskManagerTimeout); slots = new HashMap<>(16); freeSlots (newResourceManagerId); mainThreadExecutor = Preconditions.checkNotNull(newMainThreadExecutor ); resourceActions = Preconditions.checkNotNull(newResourceActions); started = true
query_result["casename"] = case.casename query_result["preconditions "] = case.preconditions query_result_list.append(query_result) "] = case.preconditions query_result_list.append(query_result) "] = case.preconditions query_result_list.append(query_result) return "] = case.preconditions query_result_list.append(query_result) return
public AkkaQueryServiceGateway(ActorRef queryServiceActorRef) { this.queryServiceActorRef = Preconditions.checkNotNull (serializedCounters); Preconditions.checkNotNull(serializedGauges); Preconditions.checkNotNull (serializedMeters); Preconditions.checkNotNull(serializedHistograms); Preconditions.checkArgument (numCounters >= 0); Preconditions.checkArgument(numGauges >= 0); Preconditions.checkArgument (numMeters >= 0); Preconditions.checkArgument(numHistograms >= 0); this.serializedCounters
ImmutableList<String> immutableList = ImmutableList.copyOf(list);Iterables获得元素的API图片获得符合条件的元素图片转换集合类型图片条件检查(Preconditions )Preconditions是Guava提供的一组前置条件检查工具,它提供了一些检查参数是否符合预期的方法。 以下是Preconditions的主要方法:checkArgument(boolean expression, String errorMessageTemplate, Object... errorMessageArgs (2, 6, list3.size()); // 可以在错误信息中使用占位符 int value1 = 101; Preconditions.checkArgument (value1 <= 100, "值必须小于等于 %s", 100); // 可以使用Supplier来避免计算开销 int value2 = 101; Preconditions.checkArgument
queryServiceActorRef; public AkkaQueryServiceGateway(ActorRef queryServiceActorRef) { this.queryServiceActorRef = Preconditions.checkNotNull , byte[] serializedHistograms, int numCounters, int numGauges, int numMeters, int numHistograms) { Preconditions.checkNotNull (serializedCounters); Preconditions.checkNotNull(serializedGauges); Preconditions.checkNotNull(serializedMeters ); Preconditions.checkNotNull(serializedHistograms); Preconditions.checkArgument(numCounters >= 0); Preconditions.checkArgument (numGauges >= 0); Preconditions.checkArgument(numMeters >= 0); Preconditions.checkArgument(numHistograms
DocumentHelper.parseText(input); Element root = document.getRootElement(); Element headElement = root.element("head"); Preconditions.checkArgument = null,"XML中无head元素"); setData(dataMap,bodyElement); Element bodyElement = root.element("body"); Preconditions.checkArgument dataMap,Element parentElement){ List<Element> fieldElements = parentElement.elements("field"); Preconditions.checkArgument
* * @sample samples.misc.Preconditions.failCheckWithLazyMessage */ @kotlin.internal.InlineOnly public * * @sample samples.misc.Preconditions.failRequireWithLazyMessage */ @kotlin.internal.InlineOnly public * * @sample samples.misc.Preconditions.failWithError */ @kotlin.internal.InlineOnly public inline fun * * @sample samples.misc.Preconditions.failCheckWithLazyMessage */ @kotlin.internal.InlineOnly public
(httpParam)) { Map<String,String> header = httpParam.getHeader(); if (Preconditions.isNotBlank Elements media = doc.select("[src]"); List<String> urls = new ArrayList<>(); if (Preconditions.isNotBlank (Element src : media) { if (src.tagName().equals("img")) { if (Preconditions.isNotBlank * 下载多张图片 * @param urls */ public void downloadPics(List<String> urls) { if (Preconditions.isNotBlank * @param urls */ public void downloadWebPageImages(List<String> urls) { if (Preconditions.isNotBlank
out runtime.Object, ttl uint64) error Delete(ctx context.Context, key string, out runtime.Object, preconditions *Preconditions,validateDeletion ValidateObjectFunc, cachedExistingObject runtime.Object) error Watch GuaranteedUpdate(ctx context.Context, key string, ptrToType runtime.Object, ignoreNotFound bool, precondtions *Preconditions ttl uint64) error{...} func (s *store) Delete(ctx context.Context, key string, out runtime.Object, preconditions *Preconditions,validateDeletion ValidateObjectFunc, cachedExistingObject runtime.Object) error{...}
(person.getId()); # orgIds和hobbies都为null personInDb = personMapper.selectOneById(person.getId()); Preconditions.checkArgument (personInDb.getHobbies().equals(person.getHobbies())); Preconditions.checkArgument(personInDb.getName ().equals(person.getName())); Preconditions.checkArgument(personInDb.getAge().equals(person.getAge()) ); Preconditions.checkArgument(personInDb.getOrgIds().equals(person.getOrgIds())); 改进 设置@ResultMap("mybatis-plus_Person
stateDesc, KeyedStateBackend<K> stateBackend, TtlTimeProvider timeProvider) throws Exception { Preconditions.checkNotNull (namespaceSerializer); Preconditions.checkNotNull(stateDesc); Preconditions.checkNotNull(stateBackend ); Preconditions.checkNotNull(timeProvider); return stateDesc.getTtlConfig().isEnabled() ?
编码 我们编码要多考虑一些: 为了健壮性,我们要进行参数校验; 另外如果想写一个完善的工具类,可以支持自定义省略符; 我们来编写工具类: import com.google.common.base.Preconditions public static String abbreviate(String originStr, int maxSize, String abbrevMarker) { Preconditions.checkArgument StringUtils.defaultIfEmpty(abbrevMarker, defaultAbbrevMarker); } } 这里借助了 commons-lang3 包里的StringUtils,和guava 包的Preconditions public static String abbreviate(String originStr, int maxSize, String abbrevMarker) { Preconditions.checkArgument 因此我们做出下面的修改: import com.google.common.base.Preconditions; import org.apache.commons.lang3.StringUtils
= Preconditions.checkNotNull(executionAttemptID); this.timeout = Preconditions.checkNotNull( (jobManager); this.jobID = Preconditions.checkNotNull(jobID); this.vertexID = Preconditions.checkNotNull (vertexID); this.executionID = Preconditions.checkNotNull(executionID); this.timeout = Preconditions.checkNotNull(timeout); } @Override public InputSplit getNextInputSplit(ClassLoader userCodeClassLoader) throws InputSplitProviderException { Preconditions.checkNotNull(userCodeClassLoader
code>this */ public RetryerBuilder<V> withRetryListener(@Nonnull RetryListener listener) { Preconditions.checkNotNull (stopStrategy, "stopStrategy may not be null"); Preconditions.checkState(this.stopStrategy == null (waitStrategy, "waitStrategy may not be null"); Preconditions.checkState(this.waitStrategy == null (blockStrategy, "blockStrategy may not be null"); Preconditions.checkState(this.blockStrategy == extends Throwable> exceptionClass) { Preconditions.checkNotNull(exceptionClass, "exceptionClass may