[Google Guava]--Preconditions類
簡介:
Preconditions提供靜態方法來檢查方法或建構函式,被呼叫是否給定適當的引數。它檢查的先決條件。其方法失敗丟擲IllegalArgumentException。
類宣告
以下是com.google.common.base.Preconditions類的宣告:
@GwtCompatible
public final class Preconditions
extends Object
類方法
S.N. | 方法及說明 |
---|---|
1 | static void checkArgument(boolean expression) 確保涉及的一個或多個引數來呼叫方法表示式的真相。 |
2 | static void checkArgument(boolean expression, Object errorMessage) 確保涉及的一個或多個引數來呼叫方法表示式的真相。 |
3 | static void checkArgument(boolean expression, String errorMessageTemplate, Object... errorMessageArgs) 確保涉及的一個或多個引數來呼叫方法表示式的真相。 |
4 | static int checkElementIndex(int index, int size) 確保索引指定一個數組,列表或尺寸大小的字串有效的元素。 |
5 | static int checkElementIndex(int index, int size, String desc) 確保索引指定一個數組,列表或尺寸大小的字串有效的元素。 |
6 | static <T> T checkNotNull(T reference) 確保物件引用作為引數傳遞給呼叫方法不為空。 |
7 | static <T> T checkNotNull(T reference, Object errorMessage) 確保物件引用作為引數傳遞給呼叫方法不為空。 |
8 | static <T> T checkNotNull(T reference, String errorMessageTemplate, Object... errorMessageArgs) 確保物件引用作為引數傳遞給呼叫方法不為空。 |
9 | static int checkPositionIndex(int index, int size) 確保索引指定一個數組,列表或尺寸大小的字串的有效位置。 |
10 | static int checkPositionIndex(int index, int size, String desc) 確保索引指定一個數組,列表或尺寸大小的字串的有效位置。 |
11 | static void checkPositionIndexes(int start, int end, int size) 確保開始和結束指定陣列,列表或字串大小有效的位置,並按照順序。 |
12 | static void checkState(boolean expression) 確保涉及呼叫例項的狀態,但不涉及任何引數來呼叫方法表示式的真相。 |
13 | static void checkState(boolean expression, Object errorMessage) 確保涉及呼叫例項的狀態,但不涉及任何引數來呼叫方法表示式的真相。 |
14 | static void checkState(boolean expression, String errorMessageTemplate, Object... errorMessageArgs) 確保涉及呼叫例項的狀態,但不涉及任何引數來呼叫方法表示式的真相。 |
繼承的方法
這個類繼承了以下類方法:
java.lang.Object
Preconditions 示例
public static void main(String[] args) {
// checkArgument
try {
// 校驗表示式是否正確,並使用佔位符輸出錯誤資訊
Preconditions.checkArgument(1 > 2, "%s is wrong", "1 > 2");
} catch (IllegalArgumentException e) {
print(e.getMessage()); // 1 > 2 is wrong
}
// checkState
try {
// 校驗表示式是否正確,並使用佔位符輸出錯誤資訊,使用方法作為表示式,一般用作校驗方法返回是否為真
Preconditions.checkState(testMethod(), "%s is wrong", "testMethod()");
} catch (IllegalStateException e) {
print(e.getMessage()); // testMethod() is wrong
}
// checkNotNull
try {
// 校驗物件是否為空,並使用佔位符輸出錯誤資訊
Preconditions.checkNotNull(testObject(), "%s is null", "testObject()");
} catch (NullPointerException e) {
print(e.getMessage()); // testObject() is null
}
// 初始化測試用list
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
list.add(i);
}
// checkElementIndex
try {
// 校驗元素索引是否有效 ,使用checkPositionIndex校驗
Preconditions.checkElementIndex(10, list.size());
// 在臨界值size處產生異常
} catch (IndexOutOfBoundsException e) {
print(e.getMessage()); // index (10) must be less than size (10)
}
// checkPositionIndex
try {
// 校驗元素索引是否有效,使用checkPositionIndex校驗
Preconditions.checkPositionIndex(10, list.size());
// 在臨界size處不產生異常
// print("checkPositionIndex does not throw IndexOutOfBoundsException");
} catch (IndexOutOfBoundsException e) {
print(e.getMessage()); // checkPositionIndex does not throw
// IndexOutOfBoundsException
}
// checkPositionIndexes
try {
// 校驗是否是有效的索引區間
Preconditions.checkPositionIndexes(3, 11, list.size());
} catch (IndexOutOfBoundsException e) {
print(e.getMessage()); // end index (11) must not be greater than
// size (10)
}
}
private static void print(String message) {
System.out.println(message);
}
// 測試方法
private static boolean testMethod() {
return 1 > 2;
}
// 測試物件
private static Object testObject() {
return null;
相關推薦
[Google Guava]--Preconditions類
簡介:Preconditions提供靜態方法來檢查方法或建構函式,被呼叫是否給定適當的引數。它檢查的先決條件。其方法失敗丟擲IllegalArgumentException。類宣告以下是com.google.common.base.Preconditions類的宣告:@Gwt
學習Google guava工具類
1、前言 好的工具類能節約開發者的開發成本,今天學習一個新的工具類guava。guava是谷歌出品的一款開源java工具類,提供一些常用的方法。以下指示一些常用的方法,guava還提供其他的一些方法,可以通過線上API自行學習。 2、座標 <dependency> &n
Google guava工具類的介紹和使用
轉載自 http://blog.csdn.net/yyychyzzzz/article/details/54983574概述工具類 就是封裝平常用的方法,不需要你重複造輪子,節省開發人員時間,提高工作效率。谷歌作為大公司,當然會從日常的工作中提取中很多高效率的方法出來。所以就
[Google Guava]--Ordering類
簡介:Ordering(排序)可以被看作是一個豐富的比較具有增強功能的連結,多個實用方法,多型別排序功能等。類宣告以下是com.google.common.collect.Ordering<T>類的宣告:@GwtCompatible public abstract
[Google Guava]--Optional類
扯淡一下: 剛剛換了新工作,新的公司,新的同事,很好的夥伴們,都很喜歡;新的業務,新的技術,新的挑戰:開啟新的旅程,Fighting! 這陣子一直了解公司業務,看前輩們的程式碼,發現很多新的技巧,技術,學習好多;那麼先從第一個利器:Guava開始說起吧,
Google Guava 類庫簡介
math dir 多好 spa 裝飾 ava collect mon 集合接口 Guava 是一個 Google開發的 基於java的類庫集合的擴展項目,包括 collections, caching, primitives support, concurrency l
[Google Guava] 2.4-集合擴充套件工具類
原文連結 譯文連結 譯者:沈義揚,校對:丁一 簡介 有時候你需要實現自己的集合擴充套件。也許你想要在元素被新增到列表時增加特定的行為,或者你想實現一個Iterable,其底層實際上是遍歷資料庫查詢的結果集。Guava為你,也為我們自己提供了若干工具方法,以便讓類似的工作變得更簡單。(畢竟,我們
[Google Guava] 2.3-強大的集合工具類:java.util.Collections中未包含的集合工具
原文連結 譯文連結 譯者:沈義揚,校對:丁一 尚未完成: Queues, Tables工具類 任何對JDK集合框架有經驗的程式設計師都熟悉和喜歡java.util.Collections包含的工具方法。Guava沿著這些路線提供了更多的工具方法:適用於所有集合的靜態方法。這是Guava最流行和
Google Guava中Preconditions的用法,讓前置條件判斷變得更優雅
這幾天看Fresco和Glide的程式碼,發現他們都使用了Preconditions來做前置判斷條件,發現這樣寫,程式碼變得既優雅又容易除錯。 Preconditions的用法 OK,先看看平常寫程式碼我們是怎麼做的引數判斷。 判斷引數,如果引數配置錯
布隆過濾器:Google Guava類庫原始碼分析及基於Redis Bitmaps的重構
本文源地址:http://www.fullstackyang.com/archives/464.html,轉發請註明該地址或伯樂線上地址,謝謝! 一、背景知識 在網上已經有很多關於布隆過濾器的介紹了,這裡就不再贅述,下面簡單地提煉幾個要點: 布隆過濾器是用來判斷一
企業開發——google的Guava工具類
1.Guava之MultiMap 相信大家對Java中的Map類及其之類有大致的瞭解,Map類是以鍵值對的形式來儲存元素(Key->Value),但是熟悉Map的人都知 道,Map中儲存的Key是唯一的。什麼意思呢?就是假如我們有兩個key相同,但value不同的元
Google Guava集合在實體類中的應用示例
將實體list,轉換成map,拿到所有id的集合方法。減少訪問資料庫。 實體基類BaseEntity package com.mytest; import org.apache.commons.lang3.builder.ToStringBuilder; import
【第三方類庫】Java Guava , Google Guava
類庫集合的擴充套件專案,包括 collections, caching, primitives support, concurrency libraries, common annotations,
Google線程框架com.google.guava
oca con and HA 1.0 zhang mat ole tin pom.xml<dependency> <groupId>com.google.guava</groupId> <artifactId>
Java 的參數檢查與斷言 - Guava Preconditions
Guava在前一篇 Scala 的參數檢查與斷言: require, assert, assume 和 ensuring,捉摸 Scala 的斷言時提到了 JDK 內置對斷言的粗略支持,也就是 assert 語句,並且默認該特性是被關掉,需 -ea 開啟。assert object != null;asser
【轉載】使用 Google Guava 美化你的 Java 代碼
detail ons http osc details 轉載 .net common article 轉載地址: https://blog.csdn.net/wisgood/article/details/13297535 原文地址:https://my.oschina.n
[Google Guava] 1-4 排序: Guava強大的”流暢風格比較器”
判斷 cal java width reverse right col tor res 原文鏈接 譯者: 沈義揚 排序器[Ordering]是Guava流暢風格比較器[Comparator]的實現,它可以用來為構建復雜的比較器,以完成集合排序的功能。 從實現上說,Orde
[Google Guava] 1.3-常見Object方法
情況 false pareto except col 順序 javase acl http 原文鏈接 譯者: 沈義揚 equals 當一個對象中的字段可以為null時,實現Object.equals方法會很痛苦,因為不得不分別對它們進行null檢查。使用Objects.e
Google Guava Stopwatch(計時器)
Stopwatch stopwatch =newStopwatch().start(); //do something test for(int i =0; i <10000; i++){ } long nanos = stopwatch.elapsed(TimeUnit.NA
Google Guava官方教程
原文連結 譯文連結 譯者: 沈義揚,羅立樹,何一昕,*武祖 * 校對:方騰飛 引言 Guava工程包含了若干被Google的 Java專案廣泛依賴 的核心庫,例如:集合 [collections] 、快取 [caching] 、原生型別支援 [primitives support] 、併發庫 [