1. 程式人生 > >[Google Guava]--Preconditions類

[Google Guava]--Preconditions類

簡介:

Preconditions提供靜態方法來檢查方法或建構函式,被呼叫是否給定適當的引數。它檢查的先決條件。其方法失敗丟擲IllegalArgumentException。

類宣告

以下是com.google.common.base.Preconditions類的宣告:

@GwtCompatible
public final class Preconditions
   extends Object

類方法

S.N.方法及說明
1static void checkArgument(boolean expression)
確保涉及的一個或多個引數來呼叫方法表示式的真相。
2static void checkArgument(boolean expression, Object errorMessage)

確保涉及的一個或多個引數來呼叫方法表示式的真相。
3static void checkArgument(boolean expression, String errorMessageTemplate, Object... errorMessageArgs)
確保涉及的一個或多個引數來呼叫方法表示式的真相。
4static int checkElementIndex(int index, int size)
確保索引指定一個數組,列表或尺寸大小的字串有效的元素。
5static int checkElementIndex(int index, int size, String desc)
確保索引指定一個數組,列表或尺寸大小的字串有效的元素。
6static <T> T checkNotNull(T reference)
確保物件引用作為引數傳遞給呼叫方法不為空。
7static <T> T checkNotNull(T reference, Object errorMessage)
確保物件引用作為引數傳遞給呼叫方法不為空。
8static <T> T checkNotNull(T reference, String errorMessageTemplate, Object... errorMessageArgs)
確保物件引用作為引數傳遞給呼叫方法不為空。
9static int checkPositionIndex(int index, int size)

確保索引指定一個數組,列表或尺寸大小的字串的有效位置。
10static int checkPositionIndex(int index, int size, String desc)
確保索引指定一個數組,列表或尺寸大小的字串的有效位置。
11static void checkPositionIndexes(int start, int end, int size)
確保開始和結束指定陣列,列表或字串大小有效的位置,並按照順序。
12static void checkState(boolean expression)
確保涉及呼叫例項的狀態,但不涉及任何引數來呼叫方法表示式的真相。
13static void checkState(boolean expression, Object errorMessage)
確保涉及呼叫例項的狀態,但不涉及任何引數來呼叫方法表示式的真相。
14static 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 GuavaPreconditions的用法,讓前置條件判斷變得更優雅

這幾天看Fresco和Glide的程式碼,發現他們都使用了Preconditions來做前置判斷條件,發現這樣寫,程式碼變得既優雅又容易除錯。 Preconditions的用法 OK,先看看平常寫程式碼我們是怎麼做的引數判斷。 判斷引數,如果引數配置錯

布隆過濾器:Google Guava庫原始碼分析及基於Redis Bitmaps的重構

本文源地址:http://www.fullstackyang.com/archives/464.html,轉發請註明該地址或伯樂線上地址,謝謝! 一、背景知識 在網上已經有很多關於布隆過濾器的介紹了,這裡就不再贅述,下面簡單地提煉幾個要點: 布隆過濾器是用來判斷一

企業開發——googleGuava工具

 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] 、併發庫 [