乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 別再自己瞎寫工具類了,Spring Boot 內(nèi)置工具類應(yīng)有盡有, 建議收藏??!

       昵稱10087950 2022-06-16 發(fā)布于江蘇


      地址:juejin.cn/post/7043403364020781064

      斷言

      1. 斷言是一個(gè)邏輯判斷,用于檢查不應(yīng)該發(fā)生的情況
      2. Assert 關(guān)鍵字在 JDK1.4 中引入,可通過 JVM 參數(shù)-enableassertions開啟
      3. SpringBoot 中提供了 Assert 斷言工具類,通常用于數(shù)據(jù)合法性檢查
      // 要求參數(shù) object 必須為非空(Not Null),否則拋出異常,不予放行
      // 參數(shù) message 參數(shù)用于定制異常信息。
      void notNull(Object object, String message)
      // 要求參數(shù)必須空(Null),否則拋出異常,不予『放行』。
      // 和 notNull() 方法斷言規(guī)則相反
      void isNull(Object object, String message)
      // 要求參數(shù)必須為真(True),否則拋出異常,不予『放行』。
      void isTrue(boolean expression, String message)
      // 要求參數(shù)(List/Set)必須非空(Not Empty),否則拋出異常,不予放行
      void notEmpty(Collection collection, String message)
      // 要求參數(shù)(String)必須有長度(即,Not Empty),否則拋出異常,不予放行
      void hasLength(String text, String message)
      // 要求參數(shù)(String)必須有內(nèi)容(即,Not Blank),否則拋出異常,不予放行
      void hasText(String text, String message)
      // 要求參數(shù)是指定類型的實(shí)例,否則拋出異常,不予放行
      void isInstanceOf(Class type, Object obj, String message)
      // 要求參數(shù) `subType` 必須是參數(shù) superType 的子類或?qū)崿F(xiàn)類,否則拋出異常,不予放行
      void isAssignable(Class superType, Class subType, String message)

      對(duì)象、數(shù)組、集合

      ObjectUtils

      獲取對(duì)象的基本信息

      // 獲取對(duì)象的類名。參數(shù)為 null 時(shí),返回字符串:"null" 
      String nullSafeClassName(Object obj)
      // 參數(shù)為 null 時(shí),返回 0
      int nullSafeHashCode(Object object)
      // 參數(shù)為 null 時(shí),返回字符串:"null"
      String nullSafeToString(boolean[] array)
      // 獲取對(duì)象 HashCode(十六進(jìn)制形式字符串)。參數(shù)為 null 時(shí),返回 0 
      String getIdentityHexString(Object obj)
      // 獲取對(duì)象的類名和 HashCode。 參數(shù)為 null 時(shí),返回字符串:"" 
      String identityToString(Object obj)
      // 相當(dāng)于 toString()方法,但參數(shù)為 null 時(shí),返回字符串:""
      String getDisplayString(Object obj)

      判斷工具

      // 判斷數(shù)組是否為空
      boolean 
      isEmpty(Object[] array)
      // 判斷參數(shù)對(duì)象是否是數(shù)組
      boolean isArray(Object obj)
      // 判斷數(shù)組中是否包含指定元素
      boolean containsElement(Object[] array, Object element)
      // 相等,或同為 null時(shí),返回 true
      boolean nullSafeEquals(Object o1, Object o2)
      /*
      判斷參數(shù)對(duì)象是否為空,判斷標(biāo)準(zhǔn)為:
          Optional: Optional.empty()
             Array: length == 0
      CharSequence: length == 0
        Collection: Collection.isEmpty()
               Map: Map.isEmpty()
       */
      boolean isEmpty(Object obj)

      其他工具方法

      // 向參數(shù)數(shù)組的末尾追加新元素,并返回一個(gè)新數(shù)組
      <A, O extends A> A[] addObjectToArray(A[] array, O obj)
      // 原生基礎(chǔ)類型數(shù)組 --> 包裝類數(shù)組
      Object[] toObjectArray(Object source)

      Spring Boot 學(xué)習(xí)筆記

      StringUtils

      字符串判斷工具

      // 判斷字符串是否為 null,或 ""。注意,包含空白符的字符串為非空
      boolean isEmpty(Object str)
      // 判斷字符串是否是以指定內(nèi)容結(jié)束。忽略大小寫
      boolean endsWithIgnoreCase(String str, String suffix)
      // 判斷字符串是否已指定內(nèi)容開頭。忽略大小寫
      boolean startsWithIgnoreCase(String str, String prefix) 
      // 是否包含空白符
      boolean containsWhitespace(String str)
      // 判斷字符串非空且長度不為 0,即,Not Empty
      boolean hasLength(CharSequence str)
      // 判斷字符串是否包含實(shí)際內(nèi)容,即非僅包含空白符,也就是 Not Blank
      boolean hasText(CharSequence str)
      // 判斷字符串指定索引處是否包含一個(gè)子串。
      boolean substringMatch(CharSequence str, int index, CharSequence substring)
      // 計(jì)算一個(gè)字符串中指定子串的出現(xiàn)次數(shù)
      int countOccurrencesOf(String str, String sub)

      字符串操作工具

      // 查找并替換指定子串
      String replace(String inString, String oldPattern, String newPattern)
      // 去除尾部的特定字符
      String trimTrailingCharacter(String str, char trailingCharacter) 
      // 去除頭部的特定字符
      String trimLeadingCharacter(String str, char leadingCharacter)
      // 去除頭部的空白符
      String trimLeadingWhitespace(String str)
      // 去除頭部的空白符
      String trimTrailingWhitespace(String str)
      // 去除頭部和尾部的空白符
      String trimWhitespace(String str)
      // 刪除開頭、結(jié)尾和中間的空白符
      String trimAllWhitespace(String str)
      // 刪除指定子串
      String delete(String inString, String pattern)
      // 刪除指定字符(可以是多個(gè))
      String deleteAny(String inString, String charsToDelete)
      // 對(duì)數(shù)組的每一項(xiàng)執(zhí)行 trim() 方法
      String[] trimArrayElements(String[] array)
      // 將 URL 字符串進(jìn)行解碼
      String uriDecode(String source, Charset charset)

      路徑相關(guān)工具方法

      // 解析路徑字符串,優(yōu)化其中的 “..” 
      String cleanPath(String path)
      // 解析路徑字符串,解析出文件名部分
      String getFilename(String path)
      // 解析路徑字符串,解析出文件后綴名
      String getFilenameExtension(String path)
      // 比較兩個(gè)兩個(gè)字符串,判斷是否是同一個(gè)路徑。會(huì)自動(dòng)處理路徑中的 “..” 
      boolean pathEquals(String path1, String path2)
      // 刪除文件路徑名中的后綴部分
      String stripFilenameExtension(String path) 
      // 以 “. 作為分隔符,獲取其最后一部分
      String unqualify(String qualifiedName)
      // 以指定字符作為分隔符,獲取其最后一部分
      String unqualify(String qualifiedName, char separator)
      推薦一個(gè) Spring Boot 基礎(chǔ)教程及實(shí)戰(zhàn)示例:
      https://github.com/javastacks/spring-boot-best-practice

      CollectionUtils

      集合判斷工具

      // 判斷 List/Set 是否為空
      boolean isEmpty(Collection<?> collection)
      // 判斷 Map 是否為空
      boolean isEmpty(Map<?,?> map)
      // 判斷 List/Set 中是否包含某個(gè)對(duì)象
      boolean containsInstance(Collection<?> collection, Object element)
      // 以迭代器的方式,判斷 List/Set 中是否包含某個(gè)對(duì)象
      boolean contains(Iterator<?> iterator, Object element)
      // 判斷 List/Set 是否包含某些對(duì)象中的任意一個(gè)
      boolean containsAny(Collection<?> source, Collection<?> candidates)
      // 判斷 List/Set 中的每個(gè)元素是否唯一。即 List/Set 中不存在重復(fù)元素
      boolean hasUniqueObject(Collection<?> collection)

      集合操作工具

      // 將 Array 中的元素都添加到 List/Set 中
      <E> void mergeArrayIntoCollection(Object array, Collection<E> collection)  
      // 將 Properties 中的鍵值對(duì)都添加到 Map 中
      <K,V> void mergePropertiesIntoMap(Properties props, Map<K,V> map)
      // 返回 List 中最后一個(gè)元素
      <T> T lastElement(List<T> list)  
      // 返回 Set 中最后一個(gè)元素
      <T> T lastElement(Set<T> set
      // 返回參數(shù) candidates 中第一個(gè)存在于參數(shù) source 中的元素
      <E> E findFirstMatch(Collection<?> source, Collection<E> candidates)
      // 返回 List/Set 中指定類型的元素。
      <T> T findValueOfType(Collection<?> collection, Class<T> type)
      // 返回 List/Set 中指定類型的元素。如果第一種類型未找到,則查找第二種類型,以此類推
      Object findValueOfType(Collection<?> collection, Class<?>[] types)
      // 返回 List/Set 中元素的類型
      Class<?> findCommonElementType(Collection<?> collection)

      文件、資源、IO 流

      FileCopyUtils

        <><>ction style="line-height: 26px;color: rgb(1, 1, 1);margin-top: 10px;margin-bottom: 10px;">輸入< font=""><>i>
      // 從文件中讀入到字節(jié)數(shù)組中
      byte[] copyToByteArray(File in)
      // 從輸入流中讀入到字節(jié)數(shù)組中
      byte[] copyToByteArray(InputStream in)
      // 從輸入流中讀入到字符串中
      String copyToString(Reader in)

      輸出

      // 從字節(jié)數(shù)組到文件
      void copy(byte[] in, File out)
      // 從文件到文件
      int copy(File in, File out)
      // 從字節(jié)數(shù)組到輸出流
      void copy(byte[] in, OutputStream out) 
      // 從輸入流到輸出流
      int copy(InputStream in, OutputStream out) 
      // 從輸入流到輸出流
      int copy(Reader in, Writer out)
      // 從字符串到輸出流
      void copy(String in, Writer out)

      Spring Boot 學(xué)習(xí)筆記

      ResourceUtils

      從資源路徑獲取文件

      // 判斷字符串是否是一個(gè)合法的 URL 字符串。
      static boolean isUrl(String resourceLocation)
      // 獲取 URL
      static URL getURL(String resourceLocation) 
      // 獲取文件(在 JAR 包內(nèi)無法正常使用,需要是一個(gè)獨(dú)立的文件)
      static File getFile(String resourceLocation)

      Resource

      // 文件系統(tǒng)資源 D:\...
      FileSystemResource
      // URL 資源,如 file://... http://...
      UrlResource
      // 類路徑下的資源,classpth:...
      ClassPathResource
      // Web 容器上下文中的資源(jar 包、war 包)
      ServletContextResource
      // 判斷資源是否存在
      boolean exists()
      // 從資源中獲得 File 對(duì)象
      File getFile()
      // 從資源中獲得 URI 對(duì)象
      URI getURI()
      // 從資源中獲得 URI 對(duì)象
      URL getURL()
      // 獲得資源的 InputStream
      InputStream getInputStream()
      // 獲得資源的描述信息
      String getDescription()

      StreamUtils

      輸入

      void copy(byte[] in, OutputStream out)
      int copy(InputStream in, OutputStream out)
      void copy(String in, Charset charset, OutputStream out)
      long copyRange(InputStream in, OutputStream out, long start, long end)

      輸出

      byte[] copyToByteArray(InputStream in)
      String copyToString(InputStream in, Charset charset)
      // 舍棄輸入流中的內(nèi)容
      int drain(InputStream in

      反射、AOP

      ReflectionUtils

      獲取方法

      // 在類中查找指定方法
      Method findMethod(Class<?> clazz, String name) 
      // 同上,額外提供方法參數(shù)類型作查找條件
      Method findMethod(Class<?> clazz, String name, Class<?>... paramTypes) 
      // 獲得類中所有方法,包括繼承而來的
      Method[] getAllDeclaredMethods(Class<?> leafClass) 
      // 在類中查找指定構(gòu)造方法
      Constructor<T> accessibleConstructor(Class<T> clazz, Class<?>... parameterTypes) 
      // 是否是 equals() 方法
      boolean isEqualsMethod(Method method) 
      // 是否是 hashCode() 方法 
      boolean isHashCodeMethod(Method method) 
      // 是否是 toString() 方法
      boolean isToStringMethod(Method method) 
      // 是否是從 Object 類繼承而來的方法
      boolean isObjectMethod(Method method) 
      // 檢查一個(gè)方法是否聲明拋出指定異常
      boolean declaresException(Method method, Class<?> exceptionType) 

      執(zhí)行方法

      // 執(zhí)行方法
      Object invokeMethod(Method method, Object target)  
      // 同上,提供方法參數(shù)
      Object invokeMethod(Method method, Object target, Object... args) 
      // 取消 Java 權(quán)限檢查。以便后續(xù)執(zhí)行該私有方法
      void makeAccessible(Method method) 
      // 取消 Java 權(quán)限檢查。以便后續(xù)執(zhí)行私有構(gòu)造方法
      void makeAccessible(Constructor<?> ctor) 

      獲取字段

      // 在類中查找指定屬性
      Field findField(Class<?> clazz, String name) 
      // 同上,多提供了屬性的類型
      Field findField(Class<?> clazz, String name, Class<?> type
      // 是否為一個(gè) "public static final" 屬性
      boolean isPublicStaticFinal(Field field) 

      設(shè)置字段

      // 獲取 target 對(duì)象的 field 屬性值
      Object getField(Field field, Object target) 
      // 設(shè)置 target 對(duì)象的 field 屬性值,值為 value
      void setField(Field field, Object target, Object value) 
      // 同類對(duì)象屬性對(duì)等賦值
      void shallowCopyFieldState(Object src, Object dest)
      // 取消 Java 的權(quán)限控制檢查。以便后續(xù)讀寫該私有屬性
      void makeAccessible(Field field) 
      // 對(duì)類的每個(gè)屬性執(zhí)行 callback
      void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc
      // 同上,多了個(gè)屬性過濾功能。
      void doWithFields(Class<?> clazz, ReflectionUtils.FieldCallback fc
                        ReflectionUtils.FieldFilter ff) 
      // 同上,但不包括繼承而來的屬性
      void doWithLocalFields(Class<?> clazz, ReflectionUtils.FieldCallback fc

      Spring Boot 學(xué)習(xí)筆記

      AopUtils

      判斷代理類型

      // 判斷是不是 Spring 代理對(duì)象
      boolean isAopProxy()
      // 判斷是不是 jdk 動(dòng)態(tài)代理對(duì)象
      isJdkDynamicProxy()
      // 判斷是不是 CGLIB 代理對(duì)象
      boolean isCglibProxy()

      獲取被代理對(duì)象的 class

      // 獲取被代理的目標(biāo) class
      Class<?> getTargetClass()

      AopContext

      獲取當(dāng)前對(duì)象的代理對(duì)象

      Object currentProxy()

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多