diff --git a/bus-all/pom.xml b/bus-all/pom.xml index 4574e0facd..417465376a 100755 --- a/bus-all/pom.xml +++ b/bus-all/pom.xml @@ -69,7 +69,7 @@ 2.0 - 3.17 + 4.1.1 2.12.0 3.21.0-GA diff --git a/bus-base/src/main/java/org/aoju/bus/base/consts/ErrorCode.java b/bus-base/src/main/java/org/aoju/bus/base/consts/ErrorCode.java index 0b3a567cd8..ca0b77a6f8 100755 --- a/bus-base/src/main/java/org/aoju/bus/base/consts/ErrorCode.java +++ b/bus-base/src/main/java/org/aoju/bus/base/consts/ErrorCode.java @@ -164,7 +164,7 @@ public static void register(String key, String value) { * 是否包含指定名称的错误码 * * @param name 错误码名称 - * @return true:包含, false:不包含 + * @return true:包含, false:不包含 */ public static boolean contains(String name) { return ERRORCODE_CACHE.containsKey(name); @@ -174,7 +174,7 @@ public static boolean contains(String name) { * 根据错误码名称获取错误码 * * @param name 错误码名称 - * @return 错误码对象,找不到时返回null + * @return 错误码对象, 找不到时返回null */ public static String require(String name) { return ERRORCODE_CACHE.get(name); diff --git a/bus-base/src/main/java/org/aoju/bus/base/entity/BaseEntity.java b/bus-base/src/main/java/org/aoju/bus/base/entity/BaseEntity.java index 5b1d17e26d..5291b4ccb9 100755 --- a/bus-base/src/main/java/org/aoju/bus/base/entity/BaseEntity.java +++ b/bus-base/src/main/java/org/aoju/bus/base/entity/BaseEntity.java @@ -106,12 +106,12 @@ public void setCreatAndUpdatInfo(T entity) { } /** - * 根据主键属性,判断主键是否值为空 + * 根据主键属性,判断主键是否值为空 * * @param 对象 * @param entity 反射对象 * @param field 属性 - * @return 主键为空,则返回false;主键有值,返回true + * @return 主键为空, 则返回false;主键有值,返回true */ public boolean isPKNotNull(T entity, String field) { if (!ReflectUtils.hasField(entity, field)) { diff --git a/bus-base/src/main/java/org/aoju/bus/base/spring/BaseAdvice.java b/bus-base/src/main/java/org/aoju/bus/base/spring/BaseAdvice.java index bbf4945a76..0b0d0c442d 100755 --- a/bus-base/src/main/java/org/aoju/bus/base/spring/BaseAdvice.java +++ b/bus-base/src/main/java/org/aoju/bus/base/spring/BaseAdvice.java @@ -52,7 +52,7 @@ public class BaseAdvice extends Controller { /** - * 应用到所有@RequestMapping注解方法,在其执行之前初始化数据绑定器 + * 应用到所有@RequestMapping注解方法,在其执行之前初始化数据绑定器 * * @param binder 绑定器 */ @@ -62,7 +62,7 @@ public void initBinder(WebDataBinder binder) { } /** - * 把值绑定到Model中, + * 把值绑定到Model中, * 使全局@RequestMapping可以获取到该值 * * @param model 对象 diff --git a/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/Cache.java b/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/Cache.java index 0ff4dad6f7..87c3b2950e 100755 --- a/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/Cache.java +++ b/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/Cache.java @@ -53,20 +53,20 @@ public interface Cache { Map read(Collection keys); /** - * 将对象加入到缓存,使用指定失效时长 + * 将对象加入到缓存,使用指定失效时长 * * @param key 键 * @param value 缓存的对象 - * @param expire 失效时长,单位毫秒 + * @param expire 失效时长,单位毫秒 * @see Cache#write(String, Object, long) */ void write(String key, Object value, long expire); /** - * 将对象加入到缓存,使用指定失效时长 + * 将对象加入到缓存,使用指定失效时长 * * @param map 缓存的对象 - * @param expire 失效时长,单位毫秒 + * @param expire 失效时长,单位毫秒 * @see Cache#write(Map, long) */ void write(Map map, long expire); diff --git a/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/EhCache.java b/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/EhCache.java index 27ec549e99..57241bd967 100755 --- a/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/EhCache.java +++ b/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/EhCache.java @@ -40,7 +40,7 @@ import java.util.Map; /** - * EhCache进程内缓存框架, + * EhCache进程内缓存框架, * 具有快速、精干等特点 * * @author Kimi Liu diff --git a/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/NoOpCache.java b/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/NoOpCache.java index 21301dd7f0..d2248e1124 100755 --- a/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/NoOpCache.java +++ b/bus-cache/src/main/java/org/aoju/bus/cache/support/cache/NoOpCache.java @@ -28,7 +28,7 @@ import java.util.Map; /** - * 无缓存实现,用于快速关闭缓存 + * 无缓存实现,用于快速关闭缓存 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cache/src/main/java/org/aoju/bus/cache/support/serialize/AbstractSerializer.java b/bus-cache/src/main/java/org/aoju/bus/cache/support/serialize/AbstractSerializer.java index cf9c2ef552..35e0aa6b8c 100755 --- a/bus-cache/src/main/java/org/aoju/bus/cache/support/serialize/AbstractSerializer.java +++ b/bus-cache/src/main/java/org/aoju/bus/cache/support/serialize/AbstractSerializer.java @@ -62,5 +62,5 @@ public T deserialize(byte[] bytes) { return null; } } - + } diff --git a/bus-core/src/main/java/org/aoju/bus/core/annotation/Async.java b/bus-core/src/main/java/org/aoju/bus/core/annotation/Async.java index a374a60433..1d03143880 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/annotation/Async.java +++ b/bus-core/src/main/java/org/aoju/bus/core/annotation/Async.java @@ -42,9 +42,9 @@ public @interface Async { /** - * 当一个“public void”方法被注释为“@Async”时, + * 当一个“public void”方法被注释为“@Async”时, * 框架会通过添加一个新方法作为原始方法的副本(名称) - * 来增强类是调用原始方法的结果。 + * 来增强类是调用原始方法的结果 */ class MethodNameTransformer { diff --git a/bus-core/src/main/java/org/aoju/bus/core/annotation/Element.java b/bus-core/src/main/java/org/aoju/bus/core/annotation/Element.java index 9ee56d5d2d..2906c722c2 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/annotation/Element.java +++ b/bus-core/src/main/java/org/aoju/bus/core/annotation/Element.java @@ -33,8 +33,8 @@ import java.util.Set; /** - * 组合注解 对JDK的原生注解机制做一个增强,支持类似Spring的组合注解。 - * 核心实现使用了递归获取指定元素上的注解以及注解的注解,以实现复合注解的获取。 + * 组合注解 对JDK的原生注解机制做一个增强,支持类似Spring的组合注解 + * 核心实现使用了递归获取指定元素上的注解以及注解的注解,以实现复合注解的获取 * * @author Kimi Liu * @version 5.2.2 @@ -115,7 +115,7 @@ private void init(AnnotatedElement element) { } /** - * 进行递归解析注解,直到全部都是元注解为止 + * 进行递归解析注解,直到全部都是元注解为止 * * @param annotations Class, Method, Field等 */ @@ -132,7 +132,7 @@ private void parseDeclared(Annotation[] annotations) { } /** - * 进行递归解析注解,直到全部都是元注解为止 + * 进行递归解析注解,直到全部都是元注解为止 * * @param annotations Class, Method, Field等 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/annotation/GuardeBy.java b/bus-core/src/main/java/org/aoju/bus/core/annotation/GuardeBy.java index 3ee76e4702..a91cfde8f6 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/annotation/GuardeBy.java +++ b/bus-core/src/main/java/org/aoju/bus/core/annotation/GuardeBy.java @@ -26,8 +26,8 @@ import java.lang.annotation.*; /** - * 用来标识每个需要加锁的状态变量以及保护该变量的锁。 - * 有助于代码的维护与审查,以及一些自动化的分析工具找到潜在的安全性错误。 + * 用来标识每个需要加锁的状态变量以及保护该变量的锁 + * 有助于代码的维护与审查,以及一些自动化的分析工具找到潜在的安全性错误 * * @author Kimi Liu * @version 5.2.2 @@ -40,7 +40,7 @@ public @interface GuardeBy { /** - * 指出变量由哪些锁保护。 + * 指出变量由哪些锁保护 * * @return 对应的锁信息 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/annotation/Inject.java b/bus-core/src/main/java/org/aoju/bus/core/annotation/Inject.java index 960e741e17..7e92da76dd 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/annotation/Inject.java +++ b/bus-core/src/main/java/org/aoju/bus/core/annotation/Inject.java @@ -35,10 +35,11 @@ public @interface Inject { /** - * 如果为真,且没有找到适当的绑定,则注入器将跳过此方法或字段的注入, 而不会产生错误 - * 当应用到一个字段时,任何已经分配给该字段的默认值将保持不变 - * 当应用于某个方法时,只有在找到的所有参数的绑定时才调用该方法 - * @return the true/false + * 如果为真,且没有找到适当的绑定,则注入器将跳过此方法或字段的注入, 而不会产生错误 + * 当应用到一个字段时,任何已经分配给该字段的默认值将保持不变 + * 当应用于某个方法时,只有在找到的所有参数的绑定时才调用该方法 + * + * @return the true/false */ boolean optional() default false; diff --git a/bus-core/src/main/java/org/aoju/bus/core/annotation/Lazy.java b/bus-core/src/main/java/org/aoju/bus/core/annotation/Lazy.java index 0f7eee4c5a..917db6c8f2 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/annotation/Lazy.java +++ b/bus-core/src/main/java/org/aoju/bus/core/annotation/Lazy.java @@ -29,8 +29,8 @@ import java.lang.annotation.Target; /** - * 将一个单例类标记为惰性初始化, - * 或者标记为不受立即加载影响的方法(例如,AppConfig中的方法) + * 将一个单例类标记为惰性初始化, + * 或者标记为不受立即加载影响的方法(例如,AppConfig中的方法) * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/annotation/Singleton.java b/bus-core/src/main/java/org/aoju/bus/core/annotation/Singleton.java index bcd7e64b45..ffd12a3067 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/annotation/Singleton.java +++ b/bus-core/src/main/java/org/aoju/bus/core/annotation/Singleton.java @@ -6,7 +6,7 @@ import java.lang.annotation.Target; /** - * 当您希望仅对该绑定的所有注入重用一个实例时,将此应用于实现类 + * 当您希望仅对该绑定的所有注入重用一个实例时,将此应用于实现类 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/annotation/ThreadSafe.java b/bus-core/src/main/java/org/aoju/bus/core/annotation/ThreadSafe.java index 32a25c8612..1fa13e8dc2 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/annotation/ThreadSafe.java +++ b/bus-core/src/main/java/org/aoju/bus/core/annotation/ThreadSafe.java @@ -27,12 +27,12 @@ /** * 线程安全注解 - * 1.此注解放在类上,标识当前类为线程安全的。 - * 2.此注解放在方法上,标识方法是线程安全的。 + * 1.此注解放在类上,标识当前类为线程安全的 + * 2.此注解放在方法上,标识方法是线程安全的 *

- * 注意:目前此注解仅供内部使用,用来标识类是否线程安全。(表示作者的预期) 真正效果需要验证。 + * 注意:目前此注解仅供内部使用,用来标识类是否线程安全 (表示作者的预期) 真正效果需要验证 *

- * 后期用途:可能会直接基于 class 进行反射创建,要求有些类需要显示指定这个注解。 + * 后期用途:可能会直接基于 class 进行反射创建,要求有些类需要显示指定这个注解 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/annotation/env/Dev.java b/bus-core/src/main/java/org/aoju/bus/core/annotation/env/Dev.java index 9c9cee0f44..32f1f92b04 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/annotation/env/Dev.java +++ b/bus-core/src/main/java/org/aoju/bus/core/annotation/env/Dev.java @@ -27,7 +27,7 @@ /** * 开发环境 - * 表示当前方法禁止用于生产环境,仅可用于开发测试。 + * 表示当前方法禁止用于生产环境,仅可用于开发测试 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/annotation/env/Prod.java b/bus-core/src/main/java/org/aoju/bus/core/annotation/env/Prod.java index 63f70448a2..25024ff031 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/annotation/env/Prod.java +++ b/bus-core/src/main/java/org/aoju/bus/core/annotation/env/Prod.java @@ -27,7 +27,7 @@ /** * 生产环境 - * 表示当前方法性能安全性各方面达标,可以用于生产环境。 + * 表示当前方法性能安全性各方面达标,可以用于生产环境 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/beans/BeanDesc.java b/bus-core/src/main/java/org/aoju/bus/core/beans/BeanDesc.java index 9692ff3ea2..4b38984f67 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/beans/BeanDesc.java +++ b/bus-core/src/main/java/org/aoju/bus/core/beans/BeanDesc.java @@ -36,14 +36,14 @@ import java.util.Map; /** - * Bean信息描述做为BeanInfo替代方案,此对象持有JavaBean中的setters和getters等相关信息描述 + * Bean信息描述做为BeanInfo替代方案,此对象持有JavaBean中的setters和getters等相关信息描述 * 查找Getter和Setter方法时会: * *

  * 1. 忽略字段和方法名的大小写
  * 2. Getter查找getXXX、isXXX、getIsXXX
  * 3. Setter查找setXXX、setIsXXX
- * 4. Setter忽略参数值与字段值不匹配的情况,因此有多个参数类型的重载时,会调用首次匹配的
+ * 4. Setter忽略参数值与字段值不匹配的情况,因此有多个参数类型的重载时,会调用首次匹配的
  * 
* * @author Kimi Liu @@ -93,7 +93,7 @@ public String getSimpleName() { /** * 获取字段名-字段属性Map * - * @param ignoreCase 是否忽略大小写,true为忽略,false不忽略 + * @param ignoreCase 是否忽略大小写,true为忽略,false不忽略 * @return 字段名-字段属性Map */ public Map getPropMap(boolean ignoreCase) { @@ -110,7 +110,7 @@ public Collection getProps() { } /** - * 获取属性,如果不存在返回null + * 获取属性,如果不存在返回null * * @param fieldName 字段名 * @return {@link PropDesc} @@ -120,7 +120,7 @@ public PropDesc getProp(String fieldName) { } /** - * 获得字段名对应的字段对象,如果不存在返回null + * 获得字段名对应的字段对象,如果不存在返回null * * @param fieldName 字段名 * @return 字段值 @@ -131,7 +131,7 @@ public Field getField(String fieldName) { } /** - * 获取Getter方法,如果不存在返回null + * 获取Getter方法,如果不存在返回null * * @param fieldName 字段名 * @return Getter方法 @@ -142,7 +142,7 @@ public Method getGetter(String fieldName) { } /** - * 获取Setter方法,如果不存在返回null + * 获取Setter方法,如果不存在返回null * * @param fieldName 字段名 * @return Setter方法 @@ -154,7 +154,7 @@ public Method getSetter(String fieldName) { /** * 初始化 - * 只有与属性关联的相关Getter和Setter方法才会被读取,无关的getXXX和setXXX都被忽略 + * 只有与属性关联的相关Getter和Setter方法才会被读取,无关的getXXX和setXXX都被忽略 * * @return this */ @@ -176,7 +176,7 @@ private BeanDesc init() { * 1. 忽略字段和方法名的大小写 * 2. Getter查找getXXX、isXXX、getIsXXX * 3. Setter查找setXXX、setIsXXX - * 4. Setter忽略参数值与字段值不匹配的情况,因此有多个参数类型的重载时,会调用首次匹配的 + * 4. Setter忽略参数值与字段值不匹配的情况,因此有多个参数类型的重载时,会调用首次匹配的 * * * @param field 字段 @@ -201,17 +201,17 @@ private PropDesc createProp(Field field) { methodName = method.getName(); if (parameterTypes.length == 0) { - // 无参数,可能为Getter方法 + // 无参数,可能为Getter方法 if (isMatchGetter(methodName, fieldName, isBooeanField)) { - // 方法名与字段名匹配,则为Getter方法 + // 方法名与字段名匹配,则为Getter方法 getter = method; } } else if (isMatchSetter(methodName, fieldName, isBooeanField)) { - // 只有一个参数的情况下方法名与字段名对应匹配,则为Setter方法 + // 只有一个参数的情况下方法名与字段名对应匹配,则为Setter方法 setter = method; } if (null != getter && null != setter) { - // 如果Getter和Setter方法都找到了,不再继续寻找 + // 如果Getter和Setter方法都找到了,不再继续寻找 break; } } @@ -237,7 +237,7 @@ private PropDesc createProp(Field field) { * @return 是否匹配 */ private boolean isMatchGetter(String methodName, String fieldName, boolean isBooeanField) { - // 全部转为小写,忽略大小写比较 + // 全部转为小写,忽略大小写比较 methodName = methodName.toLowerCase(); fieldName = fieldName.toLowerCase(); @@ -261,7 +261,7 @@ private boolean isMatchGetter(String methodName, String fieldName, boolean isBoo return true; } } else if (methodName.equals("is" + fieldName)) { - // 字段非is开头, name -》 isName + // 字段非is开头, name -》 isName return true; } } @@ -287,7 +287,7 @@ private boolean isMatchGetter(String methodName, String fieldName, boolean isBoo * @return 是否匹配 */ private boolean isMatchSetter(String methodName, String fieldName, boolean isBooeanField) { - // 全部转为小写,忽略大小写比较 + // 全部转为小写,忽略大小写比较 methodName = methodName.toLowerCase(); fieldName = fieldName.toLowerCase(); @@ -362,7 +362,7 @@ public Field getField() { /** * 获得字段类型 - * 先获取字段的类型,如果字段不存在,则获取Getter方法的返回类型,否则获取Setter的第一个参数类型 + * 先获取字段的类型,如果字段不存在,则获取Getter方法的返回类型,否则获取Setter的第一个参数类型 * * @return 字段类型 */ @@ -375,7 +375,7 @@ public Type getFieldType() { /** * 获得字段类型 - * 先获取字段的类型,如果字段不存在,则获取Getter方法的返回类型,否则获取Setter的第一个参数类型 + * 先获取字段的类型,如果字段不存在,则获取Getter方法的返回类型,否则获取Setter的第一个参数类型 * * @return 字段类型 */ @@ -406,7 +406,7 @@ public Method getSetter() { /** * 获取字段值 - * 首先调用字段对应的Getter方法获取值,如果Getter方法不存在,则判断字段如果为public,则直接获取字段值 + * 首先调用字段对应的Getter方法获取值,如果Getter方法不存在,则判断字段如果为public,则直接获取字段值 * * @param bean Bean对象 * @return 字段值 @@ -422,7 +422,7 @@ public Object getValue(Object bean) { /** * 设置Bean的字段值 - * 首先调用字段对应的Setter方法,如果Setter方法不存在,则判断字段如果为public,则直接赋值字段值 + * 首先调用字段对应的Setter方法,如果Setter方法不存在,则判断字段如果为public,则直接赋值字段值 * * @param bean Bean对象 * @param value 值 diff --git a/bus-core/src/main/java/org/aoju/bus/core/beans/BeanPath.java b/bus-core/src/main/java/org/aoju/bus/core/beans/BeanPath.java index 0dbbe69e4a..d9fb8accdd 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/beans/BeanPath.java +++ b/bus-core/src/main/java/org/aoju/bus/core/beans/BeanPath.java @@ -30,11 +30,11 @@ import java.util.*; /** - * Bean路径表达式,用于获取多层嵌套Bean中的字段值或Bean对象 - * 根据给定的表达式,查找Bean中对应的属性值对象。 表达式分为两种: + * Bean路径表达式,用于获取多层嵌套Bean中的字段值或Bean对象 + * 根据给定的表达式,查找Bean中对应的属性值对象 表达式分为两种: *
    - *
  1. .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值
  2. - *
  3. []表达式,可以获取集合等对象中对应index的值
  4. + *
  5. .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值
  6. + *
  7. []表达式,可以获取集合等对象中对应index的值
  8. *
*

* 表达式: @@ -71,11 +71,11 @@ public BeanPath(String expression) { /** * 解析Bean路径表达式为Bean模式 - * Bean表达式,用于获取多层嵌套Bean中的字段值或Bean对象 - * 根据给定的表达式,查找Bean中对应的属性值对象。 表达式分为两种: + * Bean表达式,用于获取多层嵌套Bean中的字段值或Bean对象 + * 根据给定的表达式,查找Bean中对应的属性值对象 表达式分为两种: *

    - *
  1. .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值
  2. - *
  3. []表达式,可以获取集合等对象中对应index的值
  4. + *
  5. .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值
  6. + *
  7. []表达式,可以获取集合等对象中对应index的值
  8. *
*

* 表达式栗子: @@ -159,7 +159,7 @@ private static String unWrapIfPossible(CharSequence expression) { * 获取Bean中对应表达式的值 * * @param bean Bean对象或Map或List等 - * @return 值,如果对应值不存在,则返回null + * @return 值, 如果对应值不存在, 则返回null */ public Object get(Object bean) { return get(this.patternParts, bean, false); @@ -167,12 +167,12 @@ public Object get(Object bean) { /** * 设置表达式指定位置(或filed对应)的值 - * 若表达式指向一个List则设置其坐标对应位置的值,若指向Map则put对应key的值,Bean则设置字段的值 + * 若表达式指向一个List则设置其坐标对应位置的值,若指向Map则put对应key的值,Bean则设置字段的值 * 注意: * *

-     * 1. 如果为List,如果下标不大于List长度,则替换原有值,否则追加值
-     * 2. 如果为数组,如果下标不大于数组长度,则替换原有值,否则追加值
+     * 1. 如果为List,如果下标不大于List长度,则替换原有值,否则追加值
+     * 2. 如果为数组,如果下标不大于数组长度,则替换原有值,否则追加值
      * 
* * @param bean Bean、Map或List @@ -184,12 +184,12 @@ public void set(Object bean, Object value) { /** * 设置表达式指定位置(或filed对应)的值 - * 若表达式指向一个List则设置其坐标对应位置的值,若指向Map则put对应key的值,Bean则设置字段的值 + * 若表达式指向一个List则设置其坐标对应位置的值,若指向Map则put对应key的值,Bean则设置字段的值 * 注意: * *
-     * 1. 如果为List,如果下标不大于List长度,则替换原有值,否则追加值
-     * 2. 如果为数组,如果下标不大于数组长度,则替换原有值,否则追加值
+     * 1. 如果为List,如果下标不大于List长度,则替换原有值,否则追加值
+     * 2. 如果为数组,如果下标不大于数组长度,则替换原有值,否则追加值
      * 
* * @param bean Bean、Map或List @@ -200,7 +200,7 @@ private void set(Object bean, List patternParts, Object value) { Object subBean = get(patternParts, bean, true); if (null == subBean) { set(bean, patternParts.subList(0, patternParts.size() - 1), new HashMap<>()); - //set中有可能做过转换,因此此处重新获取bean + //set中有可能做过转换,因此此处重新获取bean subBean = get(patternParts, bean, true); } BeanUtils.setFieldValue(subBean, patternParts.get(patternParts.size() - 1), value); @@ -211,8 +211,8 @@ private void set(Object bean, List patternParts, Object value) { * * @param patternParts 表达式分段列表 * @param bean Bean对象或Map或List等 - * @param ignoreLast 是否忽略最后一个值,忽略最后一个值则用于set,否则用于read - * @return 值,如果对应值不存在,则返回null + * @param ignoreLast 是否忽略最后一个值,忽略最后一个值则用于set,否则用于read + * @return 值, 如果对应值不存在, 则返回null */ private Object get(List patternParts, Object bean, boolean ignoreLast) { int length = patternParts.size(); @@ -226,7 +226,7 @@ private Object get(List patternParts, Object bean, boolean ignoreLast) { patternPart = patternParts.get(i); subBean = getFieldValue(subBean, patternPart); if (null == subBean) { - // 支持表达式的第一个对象为Bean本身(若用户定义表达式$开头,则不做此操作) + // 支持表达式的第一个对象为Bean本身(若用户定义表达式$开头,则不做此操作) if (isFirst && false == this.isStartWith$ && BeanUtils.isMatchName(bean, patternPart, true)) { subBean = bean; isFirst = false; @@ -253,7 +253,7 @@ private void init(String expression) { for (int i = 0; i < length; i++) { c = expression.charAt(i); if (0 == i && '$' == c) { - // 忽略开头的$符,表示当前对象 + // 忽略开头的$符,表示当前对象 isStartWith$ = true; continue; } @@ -279,14 +279,14 @@ private void init(String expression) { // 数字下标开始 isNumStart = true; } - // 每一个边界符之前的表达式是一个完整的KEY,开始处理KEY + // 每一个边界符之前的表达式是一个完整的KEY,开始处理KEY if (builder.length() > 0) { localPatternParts.add(unWrapIfPossible(builder)); } builder.reset(); } } else { - // 非边界符号,追加字符 + // 非边界符号,追加字符 builder.append(c); } } diff --git a/bus-core/src/main/java/org/aoju/bus/core/beans/DynaBean.java b/bus-core/src/main/java/org/aoju/bus/core/beans/DynaBean.java index fd1c8b4c59..f23d4a528c 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/beans/DynaBean.java +++ b/bus-core/src/main/java/org/aoju/bus/core/beans/DynaBean.java @@ -35,7 +35,7 @@ import java.util.Map; /** - * 动态Bean,通过反射对Bean的相关方法做操作 + * 动态Bean,通过反射对Bean的相关方法做操作 * 支持Map和普通Bean * * @author Kimi Liu @@ -119,7 +119,7 @@ public T get(String fieldName) throws InstrumentException { } /** - * 获得字段对应值,获取异常返回{@code null} + * 获得字段对应值,获取异常返回{@code null} * * @param 属性值类型 * @param fieldName 字段名 @@ -163,7 +163,7 @@ public void set(String fieldName, Object value) throws InstrumentException { * * @param methodName 方法名 * @param params 参数 - * @return 执行结果,可能为null + * @return 执行结果, 可能为null */ public Object invoke(String methodName, Object... params) { return ReflectUtils.invoke(this.bean, methodName, params); diff --git a/bus-core/src/main/java/org/aoju/bus/core/beans/copier/BeanCopier.java b/bus-core/src/main/java/org/aoju/bus/core/beans/copier/BeanCopier.java index c206572c7e..2085ca8ad2 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/beans/copier/BeanCopier.java +++ b/bus-core/src/main/java/org/aoju/bus/core/beans/copier/BeanCopier.java @@ -53,7 +53,7 @@ public class BeanCopier implements Copier { /** * 构造 * - * @param source 来源对象,可以是Bean或者Map + * @param source 来源对象,可以是Bean或者Map * @param dest 目标Bean对象 * @param copyOptions 拷贝属性选项 */ @@ -67,7 +67,7 @@ public BeanCopier(Object source, T dest, CopyOptions copyOptions) { * 创建BeanCopier * * @param 目标Bean类型 - * @param source 来源对象,可以是Bean或者Map + * @param source 来源对象,可以是Bean或者Map * @param dest 目标Bean对象 * @param copyOptions 拷贝属性选项 * @return BeanCopier @@ -81,7 +81,7 @@ public static BeanCopier create(Object source, T dest, CopyOptions copyOp * * @param mapping 反向映射Map * @param fieldName 字段名 - * @return 映射值,无对应值返回字段名 + * @return 映射值, 无对应值返回字段名 */ private static String mappingKey(Map mapping, String fieldName) { if (MapUtils.isEmpty(mapping)) { @@ -181,10 +181,10 @@ private void beanToMap(Object bean, Map targetMap) { continue; } if (null == value && copyOptions.ignoreNullValue) { - continue;// 当允许跳过空时,跳过 + continue;// 当允许跳过空时,跳过 } if (bean.equals(value)) { - continue;// 值不能为bean本身,防止循环引用 + continue;// 值不能为bean本身,防止循环引用 } targetMap.put(mappingKey(copyOptions.fieldMapping, key), value); } @@ -238,19 +238,19 @@ private void valueProviderToBean(ValueProvider valueProvider, Object bea } value = valueProvider.value(providerKey, TypeUtils.getFirstParamType(setterMethod)); if (null == value && copyOptions.ignoreNullValue) { - continue;// 当允许跳过空时,跳过 + continue;// 当允许跳过空时,跳过 } if (bean.equals(value)) { - continue;// 值不能为bean本身,防止循环引用 + continue;// 值不能为bean本身,防止循环引用 } try { - // valueProvider在没有对值做转换且当类型不匹配的时候,执行默认转换 + // valueProvider在没有对值做转换且当类型不匹配的时候,执行默认转换 propClass = prop.getFieldClass(); if (false == propClass.isInstance(value)) { value = Convert.convert(propClass, value); if (null == value && copyOptions.ignoreNullValue) { - continue;// 当允许跳过空时,跳过 + continue;// 当允许跳过空时,跳过 } } diff --git a/bus-core/src/main/java/org/aoju/bus/core/beans/copier/CopyOptions.java b/bus-core/src/main/java/org/aoju/bus/core/beans/copier/CopyOptions.java index 3468603981..963acbda8f 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/beans/copier/CopyOptions.java +++ b/bus-core/src/main/java/org/aoju/bus/core/beans/copier/CopyOptions.java @@ -30,10 +30,10 @@ /** * 属性拷贝选项 * 包括: - * 1、限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性, - * 例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类 - * 2、是否忽略空值,当源对象的值为null时,true: 忽略,false: 注入 - * 3、忽略的属性列表,设置一个属性列表,不拷贝这些属性值 + * 1、限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性, + * 例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类 + * 2、是否忽略空值,当源对象的值为null时,true: 忽略,false: 注入 + * 3、忽略的属性列表,设置一个属性列表,不拷贝这些属性值 * * @author Kimi Liu * @version 5.2.2 @@ -42,15 +42,15 @@ public class CopyOptions { /** - * 限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类 + * 限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类 */ protected Class editable; /** - * 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null + * 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null */ protected boolean ignoreNullValue; /** - * 忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值 + * 忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值 */ protected String[] ignoreProperties; /** @@ -62,7 +62,7 @@ public class CopyOptions { */ protected boolean ignoreCase; /** - * 拷贝属性的字段映射,用于不同的属性之前拷贝做对应表用 + * 拷贝属性的字段映射,用于不同的属性之前拷贝做对应表用 */ protected Map fieldMapping; @@ -75,9 +75,9 @@ public CopyOptions() { /** * 构造拷贝选项 * - * @param editable 限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性 - * @param ignoreNullValue 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null - * @param ignoreProperties 忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值 + * @param editable 限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性 + * @param ignoreNullValue 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null + * @param ignoreProperties 忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值 */ public CopyOptions(Class editable, boolean ignoreNullValue, String... ignoreProperties) { this.editable = editable; @@ -97,9 +97,9 @@ public static CopyOptions create() { /** * 创建拷贝选项 * - * @param editable 限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性 - * @param ignoreNullValue 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null - * @param ignoreProperties 忽略的属性列表,设置一个属性列表,不拷贝这些属性值 + * @param editable 限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性 + * @param ignoreNullValue 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null + * @param ignoreProperties 忽略的属性列表,设置一个属性列表,不拷贝这些属性值 * @return 拷贝选项 */ public static CopyOptions create(Class editable, boolean ignoreNullValue, String... ignoreProperties) { @@ -107,7 +107,7 @@ public static CopyOptions create(Class editable, boolean ignoreNullValue, Str } /** - * 设置限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性 + * 设置限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性 * * @param editable 限制的类或接口 * @return CopyOptions @@ -118,9 +118,9 @@ public CopyOptions setEditable(Class editable) { } /** - * 设置是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null + * 设置是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null * - * @param ignoreNullVall 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null + * @param ignoreNullVall 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null * @return CopyOptions */ public CopyOptions setIgnoreNullValue(boolean ignoreNullVall) { @@ -129,9 +129,9 @@ public CopyOptions setIgnoreNullValue(boolean ignoreNullVall) { } /** - * 设置忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值 + * 设置忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值 * - * @param ignoreProperties 忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值 + * @param ignoreProperties 忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值 * @return CopyOptions */ public CopyOptions setIgnoreProperties(String... ignoreProperties) { @@ -162,9 +162,9 @@ public CopyOptions setIgnoreCase(boolean ignoreCase) { } /** - * 设置拷贝属性的字段映射,用于不同的属性之前拷贝做对应表用 + * 设置拷贝属性的字段映射,用于不同的属性之前拷贝做对应表用 * - * @param fieldMapping 拷贝属性的字段映射,用于不同的属性之前拷贝做对应表用 + * @param fieldMapping 拷贝属性的字段映射,用于不同的属性之前拷贝做对应表用 * @return CopyOptions */ public CopyOptions setFieldMapping(Map fieldMapping) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/beans/copier/ValueProvider.java b/bus-core/src/main/java/org/aoju/bus/core/beans/copier/ValueProvider.java index 6d584f02d0..cc04fd091f 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/beans/copier/ValueProvider.java +++ b/bus-core/src/main/java/org/aoju/bus/core/beans/copier/ValueProvider.java @@ -26,12 +26,12 @@ import java.lang.reflect.Type; /** - * 值提供者,用于提供Bean注入时参数对应值得抽象接口 + * 值提供者,用于提供Bean注入时参数对应值得抽象接口 * 继承或匿名实例化此接口 - * 在Bean注入过程中,Bean获得字段名, - * 通过外部方式根据这个字段名查找相应的字段值,然后注入Bean + * 在Bean注入过程中,Bean获得字段名, + * 通过外部方式根据这个字段名查找相应的字段值,然后注入Bean * - * @param KEY类型,一般情况下为 {@link String} + * @param KEY类型,一般情况下为 {@link String} * @author Kimi Liu * @version 5.2.2 * @since JDK 1.8+ @@ -48,10 +48,10 @@ public interface ValueProvider { Object value(T key, Type valueType); /** - * 是否包含指定KEY,如果不包含则忽略注入 + * 是否包含指定KEY,如果不包含则忽略注入 * 此接口方法单独需要实现的意义在于: - * 有些值提供者(比如Map)key是存在的, - * 但是value为null,此时如果需要注入null, + * 有些值提供者(比如Map)key是存在的, + * 但是value为null,此时如果需要注入null, * 需要根据此方法判断 * * @param key Bean对象中参数名 diff --git a/bus-core/src/main/java/org/aoju/bus/core/builder/CompareToBuilder.java b/bus-core/src/main/java/org/aoju/bus/core/builder/CompareToBuilder.java index 39fdb6df3a..2d2a6327c4 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/builder/CompareToBuilder.java +++ b/bus-core/src/main/java/org/aoju/bus/core/builder/CompareToBuilder.java @@ -36,7 +36,7 @@ * 用于构建 {@link java.lang.Comparable#compareTo(Object)} 方法的辅助工具 * *

- * 在Bean对象中,所有相关字段都参与比对,继承的字段不参与。使用方法如下: + * 在Bean对象中,所有相关字段都参与比对,继承的字段不参与 使用方法如下: * *

  * public class MyClass {
@@ -58,10 +58,10 @@
  * }
  * 
*

- * 字段值按照顺序比较,如果某个字段返回非0结果,比较终止,使用{@code toComparison()}返回结果,后续比较忽略。 + * 字段值按照顺序比较,如果某个字段返回非0结果,比较终止,使用{@code toComparison()}返回结果,后续比较忽略 * *

- * 也可以使用{@link #reflectionCompare(Object, Object) reflectionCompare} 方法通过反射比较字段,使用方法如下: + * 也可以使用{@link #reflectionCompare(Object, Object) reflectionCompare} 方法通过反射比较字段,使用方法如下: * *

  * public int compareTo(Object o) {
@@ -81,7 +81,7 @@ public class CompareToBuilder implements Builder {
     private int comparison;
 
     /**
-     * 构造,构造后调用append方法增加比较项,然后调用{@link #toComparison()}获取结果
+     * 构造,构造后调用append方法增加比较项,然后调用{@link #toComparison()}获取结果
      */
     public CompareToBuilder() {
         super();
@@ -89,7 +89,7 @@ public CompareToBuilder() {
     }
 
     /**
-     * 通过反射比较两个Bean对象,对象字段可以为private。比较规则如下:
+     * 通过反射比较两个Bean对象,对象字段可以为private 比较规则如下:
      *
      * 
    *
  • static字段不比较
  • @@ -98,7 +98,7 @@ public CompareToBuilder() { *
* *

- * 如果被比较的两个对象都为null,被认为相同。 + * 如果被比较的两个对象都为null,被认为相同 * * @param left 第一个对象 * @param right 第二个对象 @@ -269,7 +269,7 @@ public static int reflectionCompare( } /** - * 附加到builder,比较left/right使用clazz. + * 附加到builder,比较left/right使用clazz. * * @param left 数值 * @param right 数值 @@ -304,7 +304,7 @@ private static void reflectionAppend( } /** - * 附加到 builder compareTo(Object) 超类的结果。 + * 附加到 builder compareTo(Object) 超类的结果 * * @param superCompareTo 调用 super.compareTo(Object)结果 * @return this - object @@ -322,8 +322,8 @@ public CompareToBuilder appendSuper(final int superCompareTo) { * *

    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(Object, Object)}逐个元素检查数组内容
  12. *
* @@ -340,8 +340,8 @@ public CompareToBuilder append(final Object left, final Object right) { * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(Object, Object, Comparator)}逐个元素检查数组内容
  12. *
* @@ -533,8 +533,8 @@ public CompareToBuilder append(final boolean left, final boolean right) { * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(Object, Object)}逐个元素检查数组内容
  12. *
* @@ -551,8 +551,8 @@ public CompareToBuilder append(final Object[] left, final Object[] right) { * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(Object, Object, Comparator)}逐个元素检查数组内容
  12. *
* @@ -591,8 +591,8 @@ public CompareToBuilder append(final Object[] left, final Object[] right, final * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(long, long)}逐个元素检查数组内容
  12. *
* @@ -630,8 +630,8 @@ public CompareToBuilder append(final long[] left, final long[] right) { * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(int, int)}逐个元素检查数组内容
  12. *
* @@ -669,8 +669,8 @@ public CompareToBuilder append(final int[] left, final int[] right) { * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(short, short)}逐个元素检查数组内容
  12. *
* @@ -708,8 +708,8 @@ public CompareToBuilder append(final short[] left, final short[] right) { * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(char, char)}逐个元素检查数组内容
  12. *
* @@ -747,8 +747,8 @@ public CompareToBuilder append(final char[] left, final char[] right) { * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(byte, byte)}逐个元素检查数组内容
  12. *
* @@ -786,8 +786,8 @@ public CompareToBuilder append(final byte[] left, final byte[] right) { * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(double, double)}逐个元素检查数组内容
  12. *
* @@ -825,8 +825,8 @@ public CompareToBuilder append(final double[] left, final double[] right) { * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(float, float)}逐个元素检查数组内容
  12. *
* @@ -864,8 +864,8 @@ public CompareToBuilder append(final float[] left, final float[] right) { * *
    *
  1. 使用==检查数组是否相同
  2. - *
  3. 检查是否为null, null小于非null
  4. - *
  5. 检查数组长度,长度较短的数组小于长度较长的数组
  6. + *
  7. 检查是否为null, null小于非null
  8. + *
  9. 检查数组长度,长度较短的数组小于长度较长的数组
  10. *
  11. 使用{@link #append(boolean, boolean)}逐个元素检查数组内容
  12. *
* @@ -900,7 +900,7 @@ public CompareToBuilder append(final boolean[] left, final boolean[] right) { /** * 返回一个负整数、一个正整数或零 - * builder判断左边小于、大于或等于右边。 + * builder判断左边小于、大于或等于右边 * * @return 比较结果 * @see #build() @@ -911,7 +911,7 @@ public int toComparison() { /** * 返回一个负整数、一个正整数或零 - * builder判断左边小于、大于或等于右边。 + * builder判断左边小于、大于或等于右边 * * @return 最终的比较结果为整数 * @see #toComparison() diff --git a/bus-core/src/main/java/org/aoju/bus/core/builder/EqualsBuilder.java b/bus-core/src/main/java/org/aoju/bus/core/builder/EqualsBuilder.java index 9e8d0803e5..ad80fbdd9c 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/builder/EqualsBuilder.java +++ b/bus-core/src/main/java/org/aoju/bus/core/builder/EqualsBuilder.java @@ -35,7 +35,7 @@ /** *

{@link Object#equals(Object)} 方法的构建器

* - *

两个对象equals必须保证hashCode值相等,hashCode值相等不能保证一定equals

+ *

两个对象equals必须保证hashCode值相等,hashCode值相等不能保证一定equals

* *

使用方法如下:

*
@@ -78,7 +78,7 @@ public class EqualsBuilder implements Builder {
     private static final ThreadLocal>> REGISTRY = new ThreadLocal<>();
 
     /**
-     * 是否equals,此值随着构建会变更,默认true
+     * 是否equals,此值随着构建会变更,默认true
      */
     private boolean isEquals = true;
     private boolean testTransients = false;
@@ -193,24 +193,24 @@ private static void unregister(final Object lhs, final Object rhs) {
     }
 
     /**
-     * 

反射检查两个对象是否equals,此方法检查对象及其父对象的属性(包括私有属性)是否equals

+ *

反射检查两个对象是否equals,此方法检查对象及其父对象的属性(包括私有属性)是否equals

* * @param lhs 此对象 * @param rhs 另一个对象 - * @param excludeFields 排除的字段集合,如果有不参与计算equals的字段加入此集合即可 - * @return 两个对象是否equals,是返回true + * @param excludeFields 排除的字段集合,如果有不参与计算equals的字段加入此集合即可 + * @return 两个对象是否equals, 是返回true */ public static boolean reflectionEquals(final Object lhs, final Object rhs, final Collection excludeFields) { return reflectionEquals(lhs, rhs, ReflectionToStringBuilder.toNoNullStringArray(excludeFields)); } /** - *

反射检查两个对象是否equals,此方法检查对象及其父对象的属性(包括私有属性)是否equals

+ *

反射检查两个对象是否equals,此方法检查对象及其父对象的属性(包括私有属性)是否equals

* * @param lhs 此对象 * @param rhs 另一个对象 - * @param excludeFields 排除的字段集合,如果有不参与计算equals的字段加入此集合即可 - * @return 两个对象是否equals,是返回true + * @param excludeFields 排除的字段集合,如果有不参与计算equals的字段加入此集合即可 + * @return 两个对象是否equals, 是返回true */ public static boolean reflectionEquals(final Object lhs, final Object rhs, final String... excludeFields) { return reflectionEquals(lhs, rhs, false, null, excludeFields); diff --git a/bus-core/src/main/java/org/aoju/bus/core/clone/Cloneable.java b/bus-core/src/main/java/org/aoju/bus/core/clone/Cloneable.java index fcb9d0e875..f37e0fff94 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/clone/Cloneable.java +++ b/bus-core/src/main/java/org/aoju/bus/core/clone/Cloneable.java @@ -36,7 +36,7 @@ public interface Cloneable extends java.lang.Cloneable { /** - * 克隆当前对象,浅复制 + * 克隆当前对象,浅复制 * * @return 克隆后的对象 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/clone/Support.java b/bus-core/src/main/java/org/aoju/bus/core/clone/Support.java index 50b2b4497d..2b56994f6a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/clone/Support.java +++ b/bus-core/src/main/java/org/aoju/bus/core/clone/Support.java @@ -27,7 +27,7 @@ /** *

- * 克隆支持类,提供默认的克隆方法 + * 克隆支持类,提供默认的克隆方法 *

* * @param 继承类的类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/codec/BCD.java b/bus-core/src/main/java/org/aoju/bus/core/codec/BCD.java index d29a964701..e29252996f 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/codec/BCD.java +++ b/bus-core/src/main/java/org/aoju/bus/core/codec/BCD.java @@ -2,7 +2,7 @@ /** * BCD码(Binary-Coded Decimal‎)亦称二进码十进数或二-十进制代码 - * BCD码这种编码形式利用了四个位元来储存一个十进制的数码, + * BCD码这种编码形式利用了四个位元来储存一个十进制的数码, * 使二进制和十进制之间的转换得以快捷的进行 * * @author Kimi Liu diff --git a/bus-core/src/main/java/org/aoju/bus/core/codec/Base32.java b/bus-core/src/main/java/org/aoju/bus/core/codec/Base32.java index b6dcc14919..7ff7ec5d75 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/codec/Base32.java +++ b/bus-core/src/main/java/org/aoju/bus/core/codec/Base32.java @@ -29,8 +29,8 @@ /** * Base32 - encodes and decodes RFC3548 Base32 (see http://www.faqs.org/rfcs/rfc3548.html ) - * base32就是用32(2的5次方)个特定ASCII码来表示256个ASCII码。 - * 所以,5个ASCII字符经过base32编码后会变为8个字符(公约数为40),长度增加3/5.不足8n用“=”补足。 + * base32就是用32(2的5次方)个特定ASCII码来表示256个ASCII码 + * 所以,5个ASCII字符经过base32编码后会变为8个字符(公约数为40),长度增加3/5.不足8n用“=”补足 * see http://blog.csdn.net/earbao/article/details/44453937 * * @author Kimi Liu diff --git a/bus-core/src/main/java/org/aoju/bus/core/codec/Base64.java b/bus-core/src/main/java/org/aoju/bus/core/codec/Base64.java index f26cd57fd7..a7fea89e36 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/codec/Base64.java +++ b/bus-core/src/main/java/org/aoju/bus/core/codec/Base64.java @@ -34,9 +34,9 @@ import java.nio.charset.StandardCharsets; /** - * Base64工具类,提供Base64的编码和解码方案 - * base64编码是用64(2的6次方)个ASCII字符来表示256(2的8次方)个ASCII字符, - * 也就是三位二进制数组经过编码后变为四位的ASCII字符显示,长度比原来增加1/3。 + * Base64工具类,提供Base64的编码和解码方案 + * base64编码是用64(2的6次方)个ASCII字符来表示256(2的8次方)个ASCII字符, + * 也就是三位二进制数组经过编码后变为四位的ASCII字符显示,长度比原来增加1/3 * * @author Kimi Liu * @version 5.2.2 @@ -54,7 +54,7 @@ public class Base64 { 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'}; /** - * URL安全的编码表,将 + 和 / 替换为 - 和 _ + * URL安全的编码表,将 + 和 / 替换为 - 和 _ */ public static final byte[] URL_SAFE_ENCODE_TABLE = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', @@ -64,7 +64,7 @@ public class Base64 { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '_'}; /** - * Base64解码表,共128位,-1表示非base64字符,-2表示padding + * Base64解码表,共128位,-1表示非base64字符,-2表示padding */ public static final byte[] DECODE_TABLE = { // 0 1 2 3 4 5 6 7 8 9 A B C D E F @@ -79,7 +79,7 @@ public class Base64 { }; /** - * Base64解码表,共128位,-1表示非base64字符,-2表示padding + * Base64解码表,共128位,-1表示非base64字符,-2表示padding */ public static final byte PADDING = -2; @@ -162,7 +162,7 @@ public static void decode(char[] ch, int off, int len, OutputStream out) } /** - * 编码为Base64,非URL安全的 + * 编码为Base64,非URL安全的 * * @param in 被编码的数组 * @param lineSep 在76个char之后是CRLF还是EOF @@ -173,7 +173,7 @@ public static byte[] encode(byte[] in, boolean lineSep) { } /** - * 编码为Base64,URL安全的 + * 编码为Base64,URL安全的 * * @param in 被编码的数组 * @param lineSep 在76个char之后是CRLF还是EOF @@ -195,7 +195,7 @@ public static String encode(String source) { } /** - * base64编码,URL安全 + * base64编码,URL安全 * * @param source 被编码的base64字符串 * @return 被加密后的字符串 @@ -240,7 +240,7 @@ public static String encode(String source, Charset charset) { } /** - * base64编码,URL安全的 + * base64编码,URL安全的 * * @param source 被编码的base64字符串 * @param charset 字符集 @@ -324,7 +324,7 @@ public static String encode(byte[] source, String charset) { } /** - * base64编码,URL安全的 + * base64编码,URL安全的 * * @param source 被编码的base64字符串 * @param charset 字符集 @@ -347,7 +347,7 @@ public static String encode(byte[] source, Charset charset) { } /** - * base64编码,URL安全的 + * base64编码,URL安全的 * * @param source 被编码的base64字符串 * @param charset 字符集 @@ -360,11 +360,11 @@ public static String encodeUrlSafe(byte[] source, Charset charset) { /** * 编码为Base64 - * 如果isMultiLine为 true,则每76个字符一个换行符,否则在一行显示 + * 如果isMultiLine为 true,则每76个字符一个换行符,否则在一行显示 * * @param arr 被编码的数组 * @param isMultiLine 在76个char之后是CRLF还是EOF - * @param isUrlSafe 是否使用URL安全字符,一般为false + * @param isUrlSafe 是否使用URL安全字符,一般为false * @return 编码后的bytes */ public static byte[] encode(byte[] arr, boolean isMultiLine, boolean isUrlSafe) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/codec/Base64Decoder.java b/bus-core/src/main/java/org/aoju/bus/core/codec/Base64Decoder.java index 1f9fa9df4b..bdf16540c5 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/codec/Base64Decoder.java +++ b/bus-core/src/main/java/org/aoju/bus/core/codec/Base64Decoder.java @@ -156,7 +156,7 @@ public static byte[] decode(byte[] in, int pos, int length) { if (octetId == octet.length) { return octet; } else { - // 如果有非Base64字符混入,则实际结果比解析的要短,截取之 + // 如果有非Base64字符混入,则实际结果比解析的要短,截取之 return (byte[]) ArrayUtils.copy(octet, new byte[octetId], octetId); } } @@ -165,9 +165,9 @@ public static byte[] decode(byte[] in, int pos, int length) { * 获取下一个有效的byte字符 * * @param in 输入 - * @param pos 当前位置,调用此方法后此位置保持在有效字符的下一个位置 + * @param pos 当前位置,调用此方法后此位置保持在有效字符的下一个位置 * @param maxPos 最大位置 - * @return 有效字符,如果达到末尾返回 + * @return 有效字符, 如果达到末尾返回 */ private static byte getNextValidDecodeByte(byte[] in, IntWrapper pos, int maxPos) { byte base64Byte; @@ -185,7 +185,7 @@ private static byte getNextValidDecodeByte(byte[] in, IntWrapper pos, int maxPos } /** - * int包装,使之可变 + * int包装,使之可变 */ private static class IntWrapper { int value; diff --git a/bus-core/src/main/java/org/aoju/bus/core/codec/Base64Encoder.java b/bus-core/src/main/java/org/aoju/bus/core/codec/Base64Encoder.java index eb76fec2fb..6800acb9c6 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/codec/Base64Encoder.java +++ b/bus-core/src/main/java/org/aoju/bus/core/codec/Base64Encoder.java @@ -37,7 +37,7 @@ public class Base64Encoder { /** - * 编码为Base64,非URL安全的 + * 编码为Base64,非URL安全的 * * @param arr 被编码的数组 * @param lineSep 在76个char之后是CRLF还是EOF @@ -48,7 +48,7 @@ public static byte[] encode(byte[] arr, boolean lineSep) { } /** - * 编码为Base64,URL安全的 + * 编码为Base64,URL安全的 * * @param arr 被编码的数组 * @param lineSep 在76个char之后是CRLF还是EOF @@ -70,7 +70,7 @@ public static String encode(String source) { } /** - * base64编码,URL安全 + * base64编码,URL安全 * * @param source 被编码的base64字符串 * @return 被加密后的字符串 @@ -115,7 +115,7 @@ public static String encode(String source, Charset charset) { } /** - * base64编码,URL安全的 + * base64编码,URL安全的 * * @param source 被编码的base64字符串 * @param charset 字符集 @@ -159,7 +159,7 @@ public static String encode(byte[] source, String charset) { } /** - * base64编码,URL安全的 + * base64编码,URL安全的 * * @param source 被编码的base64字符串 * @param charset 字符集 @@ -182,7 +182,7 @@ public static String encode(byte[] source, Charset charset) { } /** - * base64编码,URL安全的 + * base64编码,URL安全的 * * @param source 被编码的base64字符串 * @param charset 字符集 @@ -194,11 +194,11 @@ public static String encodeUrlSafe(byte[] source, Charset charset) { } /** - * 只接受一个字节缓冲区并返回一个包含已编码缓冲区的字符串。 + * 只接受一个字节缓冲区并返回一个包含已编码缓冲区的字符串 * * @param buffer 被编码的数组 * @param charset 字符集 - * @param isUrlSafe 是否使用URL安全字符,一般为false + * @param isUrlSafe 是否使用URL安全字符,一般为false * @return 编码后的字符串 */ public static String encodeBuffer(byte[] buffer, boolean isUrlSafe, Charset charset) { @@ -206,10 +206,10 @@ public static String encodeBuffer(byte[] buffer, boolean isUrlSafe, Charset char } /** - * 只接受一个字节缓冲区并返回一个包含已编码缓冲区的字符串。 + * 只接受一个字节缓冲区并返回一个包含已编码缓冲区的字符串 * * @param buffer 被编码的数组 - * @param isUrlSafe 是否使用URL安全字符,一般为false + * @param isUrlSafe 是否使用URL安全字符,一般为false * @return 编码后的字符串 */ public static String encodeBuffer(byte[] buffer, boolean isUrlSafe) { @@ -217,7 +217,7 @@ public static String encodeBuffer(byte[] buffer, boolean isUrlSafe) { } /** - * 只接受一个字节缓冲区并返回一个包含已编码缓冲区的字符串。 + * 只接受一个字节缓冲区并返回一个包含已编码缓冲区的字符串 * * @param buffer 被编码的数组 * @param charset 字符集 @@ -228,7 +228,7 @@ public static String encodeBuffer(byte[] buffer, Charset charset) { } /** - * 只接受一个字节缓冲区并返回一个包含已编码缓冲区的字符串。 + * 只接受一个字节缓冲区并返回一个包含已编码缓冲区的字符串 * * @param buffer 被编码的数组 * @return 编码后的字符串 @@ -239,11 +239,11 @@ public static String encodeBuffer(byte[] buffer) { /** * 编码为Base64 - * 如果isMultiLine为true,则每76个字符一个换行符,否则在一行显示 + * 如果isMultiLine为true,则每76个字符一个换行符,否则在一行显示 * * @param arr 被编码的数组 * @param isMultiLine 在76个char之后是CRLF还是EOF - * @param isUrlSafe 是否使用URL安全字符,一般为false + * @param isUrlSafe 是否使用URL安全字符,一般为false * @return 编码后的bytes */ public static byte[] encode(byte[] arr, boolean isMultiLine, boolean isUrlSafe) { @@ -286,7 +286,7 @@ public static byte[] encode(byte[] arr, boolean isMultiLine, boolean isUrlSafe) dest[destlen - 3] = encodeTable[(i >>> 6) & 0x3f]; if (isUrlSafe) { - // 在URL Safe模式下,=为URL中的关键字符,不需要补充。空余的byte位要去掉。 + // 在URL Safe模式下,=为URL中的关键字符,不需要补充 空余的byte位要去掉 int urlSafeLen = destlen - 2; if (2 == left) { dest[destlen - 2] = encodeTable[i & 0x3f]; diff --git a/bus-core/src/main/java/org/aoju/bus/core/codec/Caesar.java b/bus-core/src/main/java/org/aoju/bus/core/codec/Caesar.java index 82a0e86116..cd27d81194 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/codec/Caesar.java +++ b/bus-core/src/main/java/org/aoju/bus/core/codec/Caesar.java @@ -35,7 +35,7 @@ public class Caesar { /** - * 传入明文,加密得到密文 + * 传入明文,加密得到密文 * * @param message 加密的消息 * @param offset 偏移量 diff --git a/bus-core/src/main/java/org/aoju/bus/core/collection/ArrayIterator.java b/bus-core/src/main/java/org/aoju/bus/core/collection/ArrayIterator.java index 3f68c89858..1a47b6630a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/collection/ArrayIterator.java +++ b/bus-core/src/main/java/org/aoju/bus/core/collection/ArrayIterator.java @@ -27,11 +27,11 @@ import java.util.NoSuchElementException; /** - * 实现一个{@link java.util.Iterator} 任何数组的迭代器。 - * 数组可以是对象数组,也可以是基元数组。如果你知道 - * class是更好的选择,因为它会表现得更好。 - * 迭代器实现了一个{@link #reset}方法,允许重置 - * 如果需要,迭代器返回到开始。 + * 实现一个{@link java.util.Iterator} 任何数组的迭代器 + * 数组可以是对象数组,也可以是基元数组 如果你知道 + * class是更好的选择,因为它会表现得更好 + * 迭代器实现了一个{@link #reset}方法,允许重置 + * 如果需要,迭代器返回到开始 * * @param 元素类型 * @author Kimi Liu diff --git a/bus-core/src/main/java/org/aoju/bus/core/collection/CopiedIter.java b/bus-core/src/main/java/org/aoju/bus/core/collection/CopiedIter.java index bdc8fb6a94..9fc0c4be68 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/collection/CopiedIter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/collection/CopiedIter.java @@ -9,14 +9,14 @@ /** * 复制 {@link Iterator}
* 为了解决并发情况下{@link Iterator}遍历导致的问题(当Iterator被修改会抛出ConcurrentModificationException) - * ,故使用复制原Iterator的方式解决此问题。 + * ,故使用复制原Iterator的方式解决此问题 * *

- * 解决方法为:在构造方法中遍历Iterator中的元素,装入新的List中然后遍历之。 - * 当然,修改这个复制后的Iterator是没有意义的,因此remove方法将会抛出异常。 + * 解决方法为:在构造方法中遍历Iterator中的元素,装入新的List中然后遍历之 + * 当然,修改这个复制后的Iterator是没有意义的,因此remove方法将会抛出异常 * *

- * 需要注意的是,在构造此对象时需要保证原子性(原对象不被修改),最好加锁构造此对象,构造完毕后解锁。 + * 需要注意的是,在构造此对象时需要保证原子性(原对象不被修改),最好加锁构造此对象,构造完毕后解锁 * * @param 元素类型 * @author Kimi Liu diff --git a/bus-core/src/main/java/org/aoju/bus/core/collection/LineIter.java b/bus-core/src/main/java/org/aoju/bus/core/collection/LineIter.java index 3ccc380592..6eb17268df 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/collection/LineIter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/collection/LineIter.java @@ -11,7 +11,7 @@ /** * 将Reader包装为一个按照行读取的Iterator - * 此对象遍历结束后,应关闭之,推荐使用方式: + * 此对象遍历结束后,应关闭之,推荐使用方式: * * @author Kimi Liu * @version 5.2.2 @@ -48,7 +48,7 @@ public LineIter(InputStream in, Charset charset) throws IllegalArgumentException /** * 构造 * - * @param reader {@link Reader}对象,不能为null + * @param reader {@link Reader}对象,不能为null * @throws IllegalArgumentException reader为null抛出此异常 */ public LineIter(Reader reader) throws IllegalArgumentException { @@ -58,7 +58,7 @@ public LineIter(Reader reader) throws IllegalArgumentException { /** - * 判断{@link Reader}是否可以存在下一行。 If there is an IOException then {@link #close()} will be called on this instance. + * 判断{@link Reader}是否可以存在下一行 If there is an IOException then {@link #close()} will be called on this instance. * * @return {@code true} 表示有更多行 * @throws InstrumentException 内部异常 @@ -135,7 +135,7 @@ public void remove() { } /** - * 重写此方法来判断是否每一行都被返回,默认全部为true + * 重写此方法来判断是否每一行都被返回,默认全部为true * * @param line 需要验证的行 * @return 是否通过验证 diff --git a/bus-core/src/main/java/org/aoju/bus/core/collection/PriorityQueue.java b/bus-core/src/main/java/org/aoju/bus/core/collection/PriorityQueue.java index e161807873..09e4f3e135 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/collection/PriorityQueue.java +++ b/bus-core/src/main/java/org/aoju/bus/core/collection/PriorityQueue.java @@ -5,7 +5,7 @@ /** * 有界优先队列
- * 按照给定的排序规则,排序元素,当队列满时, + * 按照给定的排序规则,排序元素,当队列满时, * 按照给定的排序规则淘汰末尾元素 * * @author Kimi Liu @@ -52,7 +52,7 @@ public int compare(E o1, E o2) { } /** - * 加入元素,当队列满时,淘汰末尾元素 + * 加入元素,当队列满时,淘汰末尾元素 * * @param e 元素 * @return 加入成功与否 @@ -64,7 +64,7 @@ public boolean offer(E e) { if (this.comparator().compare(e, head) <= 0) { return true; } - //当队列满时,就要淘汰顶端队列 + //当队列满时,就要淘汰顶端队列 poll(); } return super.offer(e); diff --git a/bus-core/src/main/java/org/aoju/bus/core/collection/ResettableIterator.java b/bus-core/src/main/java/org/aoju/bus/core/collection/ResettableIterator.java index b003d196dc..893e3e781e 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/collection/ResettableIterator.java +++ b/bus-core/src/main/java/org/aoju/bus/core/collection/ResettableIterator.java @@ -26,7 +26,7 @@ import java.util.Iterator; /** - * 定义一个迭代器,该迭代器可以重置为初始状态. + * 定义一个迭代器,该迭代器可以重置为初始状态. * * @param 元素类型 * @author Kimi Liu diff --git a/bus-core/src/main/java/org/aoju/bus/core/compare/Comparables.java b/bus-core/src/main/java/org/aoju/bus/core/compare/Comparables.java index 29a188fbf6..9df59e436f 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/compare/Comparables.java +++ b/bus-core/src/main/java/org/aoju/bus/core/compare/Comparables.java @@ -35,7 +35,7 @@ public Comparables() { * * @param obj1 被比较的第一个对象 * @param obj2 the second object to compare - * @return obj1小返回负数,大返回正数,否则返回0 + * @return obj1小返回负数, 大返回正数, 否则返回0 */ @Override public int compare(final E obj1, final E obj2) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/compare/CompareChain.java b/bus-core/src/main/java/org/aoju/bus/core/compare/CompareChain.java index df310439b6..822718f82a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/compare/CompareChain.java +++ b/bus-core/src/main/java/org/aoju/bus/core/compare/CompareChain.java @@ -6,8 +6,8 @@ import java.util.*; /** - * 比较器链。此链包装了多个比较器,最终比较结果按照比较器顺序综合多个比较器结果。
- * 按照比较器链的顺序分别比较,如果比较出相等则转向下一个比较器,否则直接返回
+ * 比较器链 此链包装了多个比较器,最终比较结果按照比较器顺序综合多个比较器结果
+ * 按照比较器链的顺序分别比较,如果比较出相等则转向下一个比较器,否则直接返回
* 此类copy from Apache-commons-collections * * @author Kimi Liu @@ -27,19 +27,19 @@ public class CompareChain implements Chain, CompareChain>, C */ private BitSet orderingBits; /** - * 比较器是否被锁定。锁定的比较器链不能再添加新的比较器。比较器会在开始比较时开始加锁。 + * 比较器是否被锁定 锁定的比较器链不能再添加新的比较器 比较器会在开始比较时开始加锁 */ private boolean lock = false; /** - * 构造空的比较器链,必须至少有一个比较器,否则会在compare时抛出{@link UnsupportedOperationException} + * 构造空的比较器链,必须至少有一个比较器,否则会在compare时抛出{@link UnsupportedOperationException} */ public CompareChain() { this(new ArrayList>(), new BitSet()); } /** - * 构造,初始化单一比较器。比较器为正序 + * 构造,初始化单一比较器 比较器为正序 * * @param comparator 在比较器链中的第一个比较器 */ @@ -48,10 +48,10 @@ public CompareChain(final Comparator comparator) { } /** - * 构造,初始化单一比较器。自定义正序还是反序 + * 构造,初始化单一比较器 自定义正序还是反序 * * @param comparator 在比较器链中的第一个比较器 - * @param reverse 是否反序,true表示反序,false正序 + * @param reverse 是否反序,true表示反序,false正序 */ public CompareChain(final Comparator comparator, final boolean reverse) { chain = new ArrayList>(1); @@ -63,7 +63,7 @@ public CompareChain(final Comparator comparator, final boolean reverse) { } /** - * 构造,使用已有的比较器列表 + * 构造,使用已有的比较器列表 * * @param list 比较器列表 * @see #CompareChain(List, BitSet) @@ -73,11 +73,11 @@ public CompareChain(final List> list) { } /** - * 构造,使用已有的比较器列表和对应的BitSet
- * BitSet中的boolean值需与list中的{@link Comparator}一一对应,true表示正序,false反序 + * 构造,使用已有的比较器列表和对应的BitSet
+ * BitSet中的boolean值需与list中的{@link Comparator}一一对应,true表示正序,false反序 * * @param list {@link Comparator} 列表 - * @param bits {@link Comparator} 列表对应的排序boolean值,true表示正序,false反序 + * @param bits {@link Comparator} 列表对应的排序boolean值,true表示正序,false反序 */ public CompareChain(final List> list, final BitSet bits) { chain = list; @@ -85,9 +85,9 @@ public CompareChain(final List> list, final BitSet bits) { } /** - * 在链的尾部添加比较器,使用正向排序 + * 在链的尾部添加比较器,使用正向排序 * - * @param comparator {@link Comparator} 比较器,正向 + * @param comparator {@link Comparator} 比较器,正向 * @return this */ public CompareChain addComparator(final Comparator comparator) { @@ -95,10 +95,10 @@ public CompareChain addComparator(final Comparator comparator) { } /** - * 在链的尾部添加比较器,使用给定排序方式 + * 在链的尾部添加比较器,使用给定排序方式 * * @param comparator {@link Comparator} 比较器 - * @param reverse 是否反序,true表示正序,false反序 + * @param reverse 是否反序,true表示正序,false反序 * @return this */ public CompareChain addComparator(final Comparator comparator, final boolean reverse) { @@ -112,7 +112,7 @@ public CompareChain addComparator(final Comparator comparator, final boole } /** - * 替换指定位置的比较器,保持原排序方式 + * 替换指定位置的比较器,保持原排序方式 * * @param index 位置 * @param comparator {@link Comparator} @@ -124,11 +124,11 @@ public CompareChain setComparator(final int index, final Comparator compar } /** - * 替换指定位置的比较器,替换指定排序方式 + * 替换指定位置的比较器,替换指定排序方式 * * @param index 位置 * @param comparator {@link Comparator} - * @param reverse 是否反序,true表示正序,false反序 + * @param reverse 是否反序,true表示正序,false反序 * @return this */ public CompareChain setComparator(final int index, final Comparator comparator, final boolean reverse) { @@ -177,7 +177,7 @@ public int size() { } /** - * 是否已经被锁定。当开始比较时(调用compare方法)此值为true + * 是否已经被锁定 当开始比较时(调用compare方法)此值为true * * @return true = ComparatorChain cannot be modified; false = ComparatorChain can still be modified. */ @@ -197,12 +197,12 @@ public CompareChain addChain(Comparator element) { /** * 执行比较
- * 按照比较器链的顺序分别比较,如果比较出相等则转向下一个比较器,否则直接返回 + * 按照比较器链的顺序分别比较,如果比较出相等则转向下一个比较器,否则直接返回 * * @param o1 第一个对象 * @param o2 第二个对象 * @return -1, 0, or 1 - * @throws UnsupportedOperationException 如果比较器链为空,无法完成比较 + * @throws UnsupportedOperationException 如果比较器链为空,无法完成比较 */ @Override public int compare(final E o1, final E o2) throws UnsupportedOperationException { @@ -269,7 +269,7 @@ private void checkLocked() { } /** - * 检查比较器链是否为空,为空抛出异常 + * 检查比较器链是否为空,为空抛出异常 * * @throws UnsupportedOperationException 为空抛出此异常 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/compare/IndexedCompare.java b/bus-core/src/main/java/org/aoju/bus/core/compare/IndexedCompare.java index 1b91646bb1..be86c84d06 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/compare/IndexedCompare.java +++ b/bus-core/src/main/java/org/aoju/bus/core/compare/IndexedCompare.java @@ -6,8 +6,8 @@ import java.util.Comparator; /** - * 按照数组的顺序正序排列,数组的元素位置决定了对象的排序先后
- * 如果参与排序的元素并不在数组中,则排序在前 + * 按照数组的顺序正序排列,数组的元素位置决定了对象的排序先后
+ * 如果参与排序的元素并不在数组中,则排序在前 * * @param 被排序元素类型 * @author Kimi Liu @@ -21,7 +21,7 @@ public class IndexedCompare implements Comparator { /** * 构造 * - * @param objs 参与排序的数组,数组的元素位置决定了对象的排序先后 + * @param objs 参与排序的数组,数组的元素位置决定了对象的排序先后 */ public IndexedCompare(T... objs) { this.array = objs; diff --git a/bus-core/src/main/java/org/aoju/bus/core/compare/VersionCompare.java b/bus-core/src/main/java/org/aoju/bus/core/compare/VersionCompare.java index 7ea405775a..f22238a58c 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/compare/VersionCompare.java +++ b/bus-core/src/main/java/org/aoju/bus/core/compare/VersionCompare.java @@ -10,8 +10,8 @@ /** * 版本比较器 * 比较两个版本的大小 - * 排序时版本从小到大排序,既比较时小版本在前,大版本在后 - * 支持如:1.3.20.8,6.82.20160101,8.5a/8.5c等版本形式 + * 排序时版本从小到大排序,既比较时小版本在前,大版本在后 + * 支持如:1.3.20.8,6.82.20160101,8.5a/8.5c等版本形式 * * @author Kimi Liu * @version 5.2.2 @@ -55,7 +55,7 @@ public int compare(String version1, String version2) { } if (version1 == null && version2 == null) { return 0; - } else if (version1 == null) {// null视为最小版本,排在前 + } else if (version1 == null) {// null视为最小版本,排在前 return -1; } else if (version2 == null) { return 1; @@ -77,7 +77,7 @@ public int compare(String version1, String version2) { diff = v1.compareTo(v2); } if (diff != 0) { - //已有结果,结束 + //已有结果,结束 break; } } diff --git a/bus-core/src/main/java/org/aoju/bus/core/consts/Algorithm.java b/bus-core/src/main/java/org/aoju/bus/core/consts/Algorithm.java index e030ad540f..9db9f9bee5 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/consts/Algorithm.java +++ b/bus-core/src/main/java/org/aoju/bus/core/consts/Algorithm.java @@ -38,52 +38,77 @@ public class Algorithm { public static final String TYPE_PRIVATE_KEY = "PrivateKey"; public static final String TYPE_PUBLIC_KEY = "PublicKey"; + /***************非对称算法类型*************/ + /** - * 非对称算法类型 + * RSA算法 */ - // RSA算法 public static final String RSA = "RSA"; - // RSA算法,此算法用了默认补位方式为RSA/ECB/PKCS1Padding + /** + * RSA算法,此算法用了默认补位方式为RSA/ECB/PKCS1Padding + */ public static final String RSA_ECB_PKCS1 = "RSA/ECB/PKCS1Padding"; - //RSA算法,此算法用了RSA/None/NoPadding + /** + * RSA算法,此算法用了RSA/None/NoPadding + */ public static final String RSA_None = "RSA/None/NoPadding"; - // EC(Elliptic Curve)算法 + /** + * 签名算法类型 + * EC(Elliptic Curve)算法 + */ public static final String EC = "EC"; + + /***************对称算法类型*************/ + /** - * 对称算法类型 + * 默认的AES加密方式:AES/CBC/PKCS5Padding */ - // 默认的AES加密方式:AES/CBC/PKCS5Padding public static final String AES = "AES"; public static final String ARCFOUR = "ARCFOUR"; public static final String Blowfish = "Blowfish"; - // 默认的DES加密方式:DES/ECB/PKCS5Padding + /** + * 默认的DES加密方式:DES/ECB/PKCS5Padding + */ public static final String DES = "DES"; - //3DES算法,默认实现为:DESede/CBC/PKCS5Padding + /** + * 3DES算法,默认实现为:DESede/CBC/PKCS5Padding + */ public static final String DESede = "DESede"; public static final String RC4 = "RC4"; public static final String PBEWithMD5AndDES = "PBEWithMD5AndDES"; public static final String PBEWithSHA1AndDESede = "PBEWithSHA1AndDESede"; public static final String PBEWithSHA1AndRC2_40 = "PBEWithSHA1AndRC2_40"; + /***************签名算法类型*************/ + /** - * 签名算法类型 + * The RSA signature algorithm */ - // The RSA signature algorithm public static final String NONEwithRSA = "NONEwithRSA"; - // The MD2/MD5 with RSA Encryption signature algorithm + /** + * The MD2/MD5 with RSA Encryption signature algorithm + */ public static final String MD2withRSA = "MD2withRSA"; public static final String MD5withRSA = "MD5withRSA"; - // The signature algorithm with SHA-* and the RSA + /** + * The signature algorithm with SHA-* and the RSA + */ public static final String SHA1withRSA = "SHA1withRSA"; public static final String SHA256withRSA = "SHA256withRSA"; public static final String SHA384withRSA = "SHA384withRSA"; public static final String SHA512withRSA = "SHA512withRSA"; - // The Digital Signature Algorithm + /** + * The Digital Signature Algorithm + */ public static final String NONEwithDSA = "NONEwithDSA"; - // The DSA with SHA-1 signature algorithm + /** + * The DSA with SHA-1 signature algorithm + */ public static final String SHA1withDSA = "SHA1withDSA"; - // The ECDSA signature algorithms + /** + * The ECDSA signature algorithms + */ public static final String NONEwithECDSA = "NONEwithECDSA"; public static final String SHA1withECDSA = "SHA1withECDSA"; public static final String SHA256withECDSA = "SHA256withECDSA"; @@ -99,7 +124,7 @@ public class Algorithm { public static final String HmacSHA384 = "HmacSHA384"; public static final String HmacSHA512 = "HmacSHA512"; /** - * HmacSM3算法实现,需要BouncyCastle库支持 + * HmacSM3算法实现,需要BouncyCastle库支持 */ public static final String HmacSM3 = "HmacSM3"; @@ -112,7 +137,6 @@ public class Algorithm { public static final String SHA256 = "SHA-256"; public static final String SHA384 = "SHA-384"; public static final String SHA512 = "SHA-512"; - public static final String SHAPRNG = "SHA1PRNG"; /** diff --git a/bus-core/src/main/java/org/aoju/bus/core/consts/Fields.java b/bus-core/src/main/java/org/aoju/bus/core/consts/Fields.java index 59f9811bd8..2d5823cc4d 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/consts/Fields.java +++ b/bus-core/src/main/java/org/aoju/bus/core/consts/Fields.java @@ -322,7 +322,7 @@ public enum DateField { */ DAY_OF_YEAR(Calendar.DAY_OF_YEAR), /** - * 周几,1表示周日,2表示周一 + * 周几,1表示周日,2表示周一 * * @see Calendar#DAY_OF_WEEK */ @@ -340,13 +340,13 @@ public enum DateField { */ AM_PM(Calendar.AM_PM), /** - * 小时,用于12小时制 + * 小时,用于12小时制 * * @see Calendar#HOUR */ HOUR(Calendar.HOUR), /** - * 小时,用于24小时制 + * 小时,用于24小时制 * * @see Calendar#HOUR */ @@ -418,7 +418,7 @@ public int getValue() { } /** - * 日期时间单位,每个单位都是以毫秒为基数 + * 日期时间单位,每个单位都是以毫秒为基数 * * @author Kimi Liu * @version 5.2.2 @@ -537,7 +537,7 @@ public enum Month { */ DECEMBER(Calendar.DECEMBER), /** - * 十三月,仅用于农历 + * 十三月,仅用于农历 */ UNDECIMBER(Calendar.UNDECIMBER); @@ -782,7 +782,7 @@ public String toChinese() { /** * 转换为中文名 * - * @param weekNamePre 表示星期的前缀,例如前缀为“星期”,则返回结果为“星期一”;前缀为”周“,结果为“周一” + * @param weekNamePre 表示星期的前缀,例如前缀为“星期”,则返回结果为“星期一”;前缀为”周“,结果为“周一” * @return 星期的中文名 */ public String toChinese(String weekNamePre) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/consts/FileType.java b/bus-core/src/main/java/org/aoju/bus/core/consts/FileType.java index e3166d4ad4..046a7006ab 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/consts/FileType.java +++ b/bus-core/src/main/java/org/aoju/bus/core/consts/FileType.java @@ -56,13 +56,30 @@ public class FileType { * 在Jar中的路径jar的扩展名形式 */ public static final String JAR_PATH_EXT = ".jar!"; - - public static final String IMAGE_TYPE_GIF = "gif";// 图形交换格式 - public static final String IMAGE_TYPE_JPG = "jpg";// 联合照片专家组 - public static final String IMAGE_TYPE_JPEG = "jpeg";// 联合照片专家组 - public static final String IMAGE_TYPE_BMP = "bmp";// 英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式 - public static final String IMAGE_TYPE_PNG = "png";// 可移植网络图形 - public static final String IMAGE_TYPE_PSD = "psd";// Photoshop的专用格式Photoshop + /** + * 图形交换格式 + */ + public static final String IMAGE_TYPE_GIF = "gif"; + /** + * 联合照片专家组 + **/ + public static final String IMAGE_TYPE_JPG = "jpg"; + /** + * 联合照片专家组 + **/ + public static final String IMAGE_TYPE_JPEG = "jpeg"; + /** + * 英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式 + **/ + public static final String IMAGE_TYPE_BMP = "bmp"; + /** + * 可移植网络图形 + **/ + public static final String IMAGE_TYPE_PNG = "png"; + /** + * Photoshop的专用格式Photoshop + **/ + public static final String IMAGE_TYPE_PSD = "psd"; /** * 图片 */ @@ -782,7 +799,7 @@ public static String removeFileType(String fileStreamHexHead) { * 根据文件流的头部信息获得文件类型 * * @param fileStreamHexHead 文件流头部16进制字符串 - * @return 文件类型,未找到为null + * @return 文件类型, 未找到为null */ public static String getType(String fileStreamHexHead) { for (Map.Entry fileTypeEntry : fileTypeMap.entrySet()) { @@ -797,7 +814,7 @@ public static String getType(String fileStreamHexHead) { * 根据文件流的头部信息获得文件类型 * * @param in {@link InputStream} - * @return 类型,文件的扩展名,未找到为null + * @return 类型, 文件的扩展名, 未找到为null * @throws InstrumentException 读取流引起的异常 */ public static String getType(InputStream in) throws InstrumentException { @@ -808,7 +825,7 @@ public static String getType(InputStream in) throws InstrumentException { * 根据文件流的头部信息获得文件类型 * * @param file 文件 {@link File} - * @return 类型,文件的扩展名,未找到为null + * @return 类型, 文件的扩展名, 未找到为null * @throws InstrumentException 读取文件引起的异常 */ public static String getType(File file) throws InstrumentException { @@ -824,7 +841,7 @@ public static String getType(File file) throws InstrumentException { /** * 通过路径获得文件类型 * - * @param path 路径,绝对路径或相对ClassPath的路径 + * @param path 路径,绝对路径或相对ClassPath的路径 * @return 类型 * @throws InstrumentException 读取文件引起的异常 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/consts/MediaType.java b/bus-core/src/main/java/org/aoju/bus/core/consts/MediaType.java index 78276790a6..de73446332 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/consts/MediaType.java +++ b/bus-core/src/main/java/org/aoju/bus/core/consts/MediaType.java @@ -455,7 +455,7 @@ public String subtype() { } /** - * 返回此媒体类型的字符集,如果该媒体类型没有指定字符集,则返回null. + * 返回此媒体类型的字符集,如果该媒体类型没有指定字符集,则返回null. * * @return the string */ @@ -464,8 +464,8 @@ public Charset charset() { } /** - * 返回此媒体类型的字符集,或者{@code defaultValue}, - * 如果此媒体类型没有指定字符集,则当前运行时不支持该字符集 + * 返回此媒体类型的字符集,或者{@code defaultValue}, + * 如果此媒体类型没有指定字符集,则当前运行时不支持该字符集 * * @param defaultValue 字符集 * @return the charset @@ -479,12 +479,12 @@ public Charset charset(Charset defaultValue) { } /** - * 检查此媒体类型是否与其他媒体类型兼容。 - * 例如:image/*与image/jpeg、image/png等兼容。 - * 忽略媒体类型参数。这个函数是可交换的 + * 检查此媒体类型是否与其他媒体类型兼容 + * 例如:image/*与image/jpeg、image/png等兼容 + * 忽略媒体类型参数 这个函数是可交换的 * * @param mediaType 要比较的媒体类型. - * @return 如果类型兼容,则为true,否则为false. + * @return 如果类型兼容, 则为true, 否则为false. */ public boolean isCompatible(MediaType mediaType) { return mediaType != null diff --git a/bus-core/src/main/java/org/aoju/bus/core/consts/Normal.java b/bus-core/src/main/java/org/aoju/bus/core/consts/Normal.java index 74ad0f554f..71e21b252b 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/consts/Normal.java +++ b/bus-core/src/main/java/org/aoju/bus/core/consts/Normal.java @@ -222,8 +222,8 @@ public class Normal { @AllArgsConstructor public enum Gender { /** - * MALE/FAMALE为正常值,通过{@link Gender#getGender(String)}方法获取真实的性别 - * UNKNOWN为容错值,部分平台不会返回用户性别,为了方便统一,使用UNKNOWN标记所有未知或不可测的用户性别信息 + * MALE/FAMALE为正常值,通过{@link Gender#getGender(String)}方法获取真实的性别 + * UNKNOWN为容错值,部分平台不会返回用户性别,为了方便统一,使用UNKNOWN标记所有未知或不可测的用户性别信息 */ MALE(1, "男"), FEMALE(0, "女"), diff --git a/bus-core/src/main/java/org/aoju/bus/core/consts/RegEx.java b/bus-core/src/main/java/org/aoju/bus/core/consts/RegEx.java index cffc16bcd9..acb8ef3218 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/consts/RegEx.java +++ b/bus-core/src/main/java/org/aoju/bus/core/consts/RegEx.java @@ -82,7 +82,7 @@ public class RegEx { public final static java.util.regex.Pattern MONEY = java.util.regex.Pattern.compile(MONEY_PATTERN); /** - * 邮件,符合RFC 5322规范 + * 邮件,符合RFC 5322规范 */ public final static String EMAIL_PATTERN = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"; public final static java.util.regex.Pattern EMAIL = java.util.regex.Pattern.compile(EMAIL_PATTERN, java.util.regex.Pattern.CASE_INSENSITIVE); diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/AbstractConverter.java b/bus-core/src/main/java/org/aoju/bus/core/convert/AbstractConverter.java index cc62317b64..ce205d79d7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/convert/AbstractConverter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/convert/AbstractConverter.java @@ -31,8 +31,8 @@ import java.util.Map; /** - * 抽象转换器,提供通用的转换逻辑,同时通过convertInternal实现对应类型的专属逻辑 - * 转换器不会抛出转换异常,转换失败时会返回{@code null} + * 抽象转换器,提供通用的转换逻辑,同时通过convertInternal实现对应类型的专属逻辑 + * 转换器不会抛出转换异常,转换失败时会返回{@code null} * * @author Kimi Liu * @version 5.2.2 @@ -55,7 +55,7 @@ public T convert(Object value, T defaultValue) { if (null == defaultValue || targetType.isInstance(defaultValue)) { if (targetType.isInstance(value) && false == Map.class.isAssignableFrom(targetType)) { - // 除Map外,已经是目标类型,不需要转换(Map类型涉及参数类型,需要单独转换) + // 除Map外,已经是目标类型,不需要转换(Map类型涉及参数类型,需要单独转换) return targetType.cast(value); } T result; @@ -87,8 +87,8 @@ public T convertQuietly(Object value, T defaultValue) { } /** - * 内部转换器,被 {@link AbstractConverter#convert(Object, Object)} 调用,实现基本转换逻辑 - * 内部转换器转换后如果转换失败可以做如下操作,处理结果都为返回默认值: + * 内部转换器,被 {@link AbstractConverter#convert(Object, Object)} 调用,实现基本转换逻辑 + * 内部转换器转换后如果转换失败可以做如下操作,处理结果都为返回默认值: * *

      * 1、返回{@code null}
@@ -130,7 +130,7 @@ protected String convertToStr(Object value) {
     /**
      * 获得此类实现类的泛型类型
      *
-     * @return 此类的泛型类型,可能为{@code null}
+     * @return 此类的泛型类型, 可能为{@code null}
      */
     public Class getTargetType() {
         return (Class) ClassUtils.getTypeArgument(getClass());
diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/BasicType.java b/bus-core/src/main/java/org/aoju/bus/core/convert/BasicType.java
index cf3f2e5b72..f77439ac61 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/convert/BasicType.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/convert/BasicType.java
@@ -39,11 +39,11 @@ public enum BasicType {
     BYTE, SHORT, INT, INTEGER, LONG, DOUBLE, FLOAT, BOOLEAN, CHAR, CHARACTER, STRING;
 
     /**
-     * 包装类型为Key,原始类型为Value,例如: Integer.class =》 int.class.
+     * 包装类型为Key,原始类型为Value,例如: Integer.class =》 int.class.
      */
     public static final Map, Class> wrapperPrimitiveMap = new ConcurrentHashMap<>(8);
     /**
-     * 原始类型为Key,包装类型为Value,例如: int.class =》 Integer.class.
+     * 原始类型为Key,包装类型为Value,例如: int.class =》 Integer.class.
      */
     public static final Map, Class> primitiveWrapperMap = new ConcurrentHashMap<>(8);
 
@@ -63,7 +63,7 @@ public enum BasicType {
     }
 
     /**
-     * 原始类转为包装类,非原始类返回原类
+     * 原始类转为包装类,非原始类返回原类
      *
      * @param clazz 原始类
      * @return 包装类
@@ -77,7 +77,7 @@ public static Class wrap(Class clazz) {
     }
 
     /**
-     * 包装类转为原始类,非包装类返回原类
+     * 包装类转为原始类,非包装类返回原类
      *
      * @param clazz 包装类
      * @return 原始类
diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/Convert.java b/bus-core/src/main/java/org/aoju/bus/core/convert/Convert.java
index 8c4abb2ec4..92481eee87 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/convert/Convert.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/convert/Convert.java
@@ -47,7 +47,7 @@ public class Convert {
 
     /**
      * 转换为字符串
-     * 如果给定的值为null,或者转换失败,返回默认值
+     * 如果给定的值为null,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -60,7 +60,7 @@ public static String toString(Object value, String defaultValue) {
 
     /**
      * 转换为字符串
-     * 如果给定的值为null,或者转换失败,返回默认值null
+     * 如果给定的值为null,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -83,7 +83,7 @@ public static String[] toStrArray(Object value) {
 
     /**
      * 转换为字符
-     * 如果给定的值为null,或者转换失败,返回默认值
+     * 如果给定的值为null,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -96,7 +96,7 @@ public static Character toChar(Object value, Character defaultValue) {
 
     /**
      * 转换为字符
-     * 如果给定的值为null,或者转换失败,返回默认值null
+     * 如果给定的值为null,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -119,7 +119,7 @@ public static Character[] toCharArray(Object value) {
 
     /**
      * 转换为byte
-     * 如果给定的值为null,或者转换失败,返回默认值
+     * 如果给定的值为null,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -132,7 +132,7 @@ public static Byte toByte(Object value, Byte defaultValue) {
 
     /**
      * 转换为byte
-     * 如果给定的值为null,或者转换失败,返回默认值null
+     * 如果给定的值为null,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -155,7 +155,7 @@ public static Byte[] toByteArray(Object value) {
 
     /**
      * 转换为Short
-     * 如果给定的值为null,或者转换失败,返回默认值
+     * 如果给定的值为null,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -168,7 +168,7 @@ public static Short toShort(Object value, Short defaultValue) {
 
     /**
      * 转换为Short
-     * 如果给定的值为null,或者转换失败,返回默认值null
+     * 如果给定的值为null,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -191,7 +191,7 @@ public static Short[] toShortArray(Object value) {
 
     /**
      * 转换为Number
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -204,7 +204,7 @@ public static Number toNumber(Object value, Number defaultValue) {
 
     /**
      * 转换为Number
-     * 如果给定的值为空,或者转换失败,返回默认值null
+     * 如果给定的值为空,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -227,7 +227,7 @@ public static Number[] toNumberArray(Object value) {
 
     /**
      * 转换为int
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -240,7 +240,7 @@ public static Integer toInt(Object value, Integer defaultValue) {
 
     /**
      * 转换为int
-     * 如果给定的值为null,或者转换失败,返回默认值null
+     * 如果给定的值为null,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -262,7 +262,7 @@ public static Integer[] toIntArray(Object value) {
 
     /**
      * 转换为long
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -275,7 +275,7 @@ public static Long toLong(Object value, Long defaultValue) {
 
     /**
      * 转换为long
-     * 如果给定的值为null,或者转换失败,返回默认值null
+     * 如果给定的值为null,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -297,7 +297,7 @@ public static Long[] toLongArray(Object value) {
 
     /**
      * 转换为double
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -310,7 +310,7 @@ public static Double toDouble(Object value, Double defaultValue) {
 
     /**
      * 转换为double
-     * 如果给定的值为空,或者转换失败,返回默认值null
+     * 如果给定的值为空,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -332,7 +332,7 @@ public static Double[] toDoubleArray(Object value) {
 
     /**
      * 转换为Float
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -345,7 +345,7 @@ public static Float toFloat(Object value, Float defaultValue) {
 
     /**
      * 转换为Float
-     * 如果给定的值为空,或者转换失败,返回默认值null
+     * 如果给定的值为空,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -367,7 +367,7 @@ public static Float[] toFloatArray(Object value) {
 
     /**
      * 转换为boolean
-     * String支持的值为:true、false、yes、ok、no,1,0 如果给定的值为空,或者转换失败,返回默认值
+     * String支持的值为:true、false、yes、ok、no,1,0 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -380,7 +380,7 @@ public static Boolean toBool(Object value, Boolean defaultValue) {
 
     /**
      * 转换为boolean
-     * 如果给定的值为空,或者转换失败,返回默认值null
+     * 如果给定的值为空,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -402,7 +402,7 @@ public static Boolean[] toBooleanArray(Object value) {
 
     /**
      * 转换为BigInteger
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -415,7 +415,7 @@ public static BigInteger toBigInteger(Object value, BigInteger defaultValue) {
 
     /**
      * 转换为BigInteger
-     * 如果给定的值为空,或者转换失败,返回默认值null
+     * 如果给定的值为空,或者转换失败,返回默认值null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -427,7 +427,7 @@ public static BigInteger toBigInteger(Object value) {
 
     /**
      * 转换为BigDecimal
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -440,7 +440,7 @@ public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) {
 
     /**
      * 转换为BigDecimal
-     * 如果给定的值为空,或者转换失败,返回null
+     * 如果给定的值为空,或者转换失败,返回null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -452,7 +452,7 @@ public static BigDecimal toBigDecimal(Object value) {
 
     /**
      * 转换为Date
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value        被转换的值
@@ -465,7 +465,7 @@ public static Date toDate(Object value, Date defaultValue) {
 
     /**
      * 转换为Date
-     * 如果给定的值为空,或者转换失败,返回null
+     * 如果给定的值为空,或者转换失败,返回null
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -477,7 +477,7 @@ public static Date toDate(Object value) {
 
     /**
      * 转换为Enum对象
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      *
      * @param           枚举类型
      * @param clazz        Enum的Class
@@ -491,7 +491,7 @@ public static > E toEnum(Class clazz, Object value, E defau
 
     /**
      * 转换为Enum对象
-     * 如果给定的值为空,或者转换失败,返回默认值null
+     * 如果给定的值为空,或者转换失败,返回默认值null
      *
      * @param    枚举类型
      * @param clazz Enum的Class
@@ -515,7 +515,7 @@ public static Collection toCollection(Class collectionType, Class eleme
     }
 
     /**
-     * 转换为ArrayList,元素类型默认Object
+     * 转换为ArrayList,元素类型默认Object
      *
      * @param value 被转换的值
      * @return {@link List}
@@ -537,7 +537,7 @@ public static  List toList(Class elementType, Object value) {
     }
 
     /**
-     * 转换值为指定类型,类型采用字符串表示
+     * 转换值为指定类型,类型采用字符串表示
      *
      * @param        目标类型
      * @param className 类的字符串表示
@@ -664,7 +664,7 @@ public static String toDBC(String text, Set notConvertSet) {
             }
 
             if (c[i] == '\u3000' || c[i] == '\u00a0' || c[i] == '\u2007' || c[i] == '\u202F') {
-                // \u3000是中文全角空格,\u00a0、\u2007、\u202F是不间断空格
+                // \u3000是中文全角空格,\u00a0、\u2007、\u202F是不间断空格
                 c[i] = ' ';
             } else if (c[i] > '\uFF00' && c[i] < '\uFF5F') {
                 c[i] = (char) (c[i] - 65248);
@@ -676,7 +676,7 @@ public static String toDBC(String text, Set notConvertSet) {
     }
 
     /**
-     * 字符串转换成十六进制字符串,结果为小写
+     * 字符串转换成十六进制字符串,结果为小写
      *
      * @param str     待转换的ASCII字符串
      * @param charset 编码
@@ -699,7 +699,7 @@ public static String toHex(byte[] bytes) {
     /**
      * Hex字符串转换为Byte值
      *
-     * @param src Byte字符串,每个Byte之间没有分隔符
+     * @param src Byte字符串,每个Byte之间没有分隔符
      * @return byte[]
      */
     public static byte[] hexToBytes(String src) {
@@ -741,7 +741,7 @@ public static String unicodeToStr(String unicode) {
 
     /**
      * 给定字符串转换字符编码
-     * 如果参数为空,则返回原字符串,不报错。
+     * 如果参数为空,则返回原字符串,不报错
      *
      * @param str           被转码的字符串
      * @param sourceCharset 原字符集
@@ -772,7 +772,7 @@ public static long convertTime(long sourceDuration, TimeUnit sourceUnit, TimeUni
     }
 
     /**
-     * 原始类转为包装类,非原始类返回原类
+     * 原始类转为包装类,非原始类返回原类
      *
      * @param clazz 原始类
      * @return 包装类
@@ -784,7 +784,7 @@ public static Class wrap(Class clazz) {
     }
 
     /**
-     * 包装类转为原始类,非包装类返回原类
+     * 包装类转为原始类,非包装类返回原类
      *
      * @param clazz 包装类
      * @return 原始类
diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/Converter.java b/bus-core/src/main/java/org/aoju/bus/core/convert/Converter.java
index fa38cfedc8..d656efe4db 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/convert/Converter.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/convert/Converter.java
@@ -24,7 +24,7 @@
 package org.aoju.bus.core.convert;
 
 /**
- * 转换器接口,实现类型转换
+ * 转换器接口,实现类型转换
  *
  * @author Kimi Liu
  * @version 5.2.2
@@ -34,12 +34,12 @@ public interface Converter {
 
     /**
      * 转换为指定类型
-     * 如果类型无法确定,将读取默认值的类型做为目标类型
+     * 如果类型无法确定,将读取默认值的类型做为目标类型
      *
      * @param value        原始值
      * @param defaultValue 默认值
      * @return 转换后的值
-     * @throws IllegalArgumentException 无法确定目标类型,且默认值为{@code null},无法确定类型
+     * @throws IllegalArgumentException 无法确定目标类型,且默认值为{@code null},无法确定类型
      */
     T convert(Object value, T defaultValue) throws IllegalArgumentException;
 
diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/ConverterRegistry.java b/bus-core/src/main/java/org/aoju/bus/core/convert/ConverterRegistry.java
index b1d6581cba..af4ff7ca52 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/convert/ConverterRegistry.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/convert/ConverterRegistry.java
@@ -50,10 +50,10 @@
 /**
  * 转换器登记中心
  * 

- * 将各种类型Convert对象放入登记中心,通过convert方法查找目标类型对应的转换器,将被转换对象转换之。 + * 将各种类型Convert对象放入登记中心,通过convert方法查找目标类型对应的转换器,将被转换对象转换之 *

*

- * 在此类中,存放着默认转换器和自定义转换器,默认转换器预定义的一些转换器,自定义转换器存放用户自定的转换器。 + * 在此类中,存放着默认转换器和自定义转换器,默认转换器预定义的一些转换器,自定义转换器存放用户自定的转换器 *

* * @author Kimi Liu @@ -88,7 +88,7 @@ public static ConverterRegistry getInstance() { * 登记自定义转换器 * * @param type 转换的目标类型 - * @param converterClass 转换器类,必须有默认构造方法 + * @param converterClass 转换器类,必须有默认构造方法 * @return {@link ConverterRegistry} */ public ConverterRegistry putCustom(Type type, Class> converterClass) { @@ -183,7 +183,7 @@ public T convert(Type type, Object value, T defaultValue, boolean isCustomFi } final Class rowType = (Class) TypeUtils.getClass(type); - // 特殊类型转换,包括Collection、Map、强转、Array等 + // 特殊类型转换,包括Collection、Map、强转、Array等 final T result = convertSpecial(type, rowType, value, defaultValue); if (null != result) { return result; @@ -225,7 +225,7 @@ public T convert(Type type, Object value, T defaultValue) throws InstrumentE * @param 转换的目标类型(转换器转换到的类型) * @param type 类型 * @param value 值 - * @return 转换后的值,默认为null + * @return 转换后的值, 默认为null * @throws InstrumentException 转换器不存在 */ public T convert(Type type, Object value) throws InstrumentException { @@ -353,11 +353,11 @@ private ConverterRegistry defaultConverter() { } /** - * 类级的内部类,也就是静态的成员式内部类,该内部类的实例与外部类的实例 没有绑定关系,而且只有被调用到才会装载,从而实现了延迟加载 + * 类级的内部类,也就是静态的成员式内部类,该内部类的实例与外部类的实例 没有绑定关系,而且只有被调用到才会装载,从而实现了延迟加载 */ private static class SingletonHolder { /** - * 静态初始化器,由JVM来保证线程安全 + * 静态初始化器,由JVM来保证线程安全 */ private static ConverterRegistry instance = new ConverterRegistry(); } diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/NumberChinese.java b/bus-core/src/main/java/org/aoju/bus/core/convert/NumberChinese.java index dc0f7ffb75..56b8bddcff 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/convert/NumberChinese.java +++ b/bus-core/src/main/java/org/aoju/bus/core/convert/NumberChinese.java @@ -30,9 +30,9 @@ * 数字转中文类 * 包括: *
- * 1. 数字转中文大写形式,比如一百二十一
- * 2. 数字转金额用的大写形式,比如:壹佰贰拾壹
- * 3. 转金额形式,比如:壹佰贰拾壹整
+ * 1. 数字转中文大写形式,比如一百二十一
+ * 2. 数字转金额用的大写形式,比如:壹佰贰拾壹
+ * 3. 转金额形式,比如:壹佰贰拾壹整
  * 
* * @author Kimi Liu @@ -103,11 +103,11 @@ public static String format(double amount, boolean isUseTraditional, boolean isM chineseStr = "亿" + chineseStr; } else { if ("".equals(partChinese) && false == beforeWanIsZero) { - // 如果“万”对应的 part 为 0,而“万”下面一级不为 0,则不加“万”,而加“零” + // 如果“万”对应的 part 为 0,而“万”下面一级不为 0,则不加“万”,而加“零” chineseStr = "零" + chineseStr; } else { if (parts[i - 1] < 1000 && parts[i - 1] > 0) { - // 如果"万"的部分不为 0, 而"万"前面的部分小于 1000 大于 0, 则万后面应该跟“零” + // 如果"万"的部分不为 0, 而"万"前面的部分小于 1000 大于 0, 则万后面应该跟“零” chineseStr = "零" + chineseStr; } chineseStr = "万" + chineseStr; @@ -147,7 +147,7 @@ public static String format(double amount, boolean isUseTraditional, boolean isM } /** - * 把一个 0~9999 之间的整数转换为汉字的字符串,如果是 0 则返回 "" + * 把一个 0~9999 之间的整数转换为汉字的字符串,如果是 0 则返回 "" * * @param amountPart 数字部分 * @param isUseTraditional 是否使用繁体单位 @@ -160,7 +160,7 @@ private static String toChinese(int amountPart, boolean isUseTraditional) { int temp = amountPart; String chineseStr = ""; - boolean lastIsZero = true; // 在从低位往高位循环时,记录上一位数字是不是 0 + boolean lastIsZero = true; // 在从低位往高位循环时,记录上一位数字是不是 0 for (int i = 0; temp > 0; i++) { if (temp == 0) { // 高位已无数据 @@ -169,7 +169,7 @@ private static String toChinese(int amountPart, boolean isUseTraditional) { int digit = temp % 10; if (digit == 0) { // 取到的数字为 0 if (false == lastIsZero) { - // 前一个数字不是 0,则在当前汉字串前加“零”字; + // 前一个数字不是 0,则在当前汉字串前加“零”字; chineseStr = "零" + chineseStr; } lastIsZero = true; diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/NumberWord.java b/bus-core/src/main/java/org/aoju/bus/core/convert/NumberWord.java index 5e7899eda6..b58ab9efc8 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/convert/NumberWord.java +++ b/bus-core/src/main/java/org/aoju/bus/core/convert/NumberWord.java @@ -38,7 +38,7 @@ public class NumberWord { /** * 将阿拉伯数字转为英文表达式 * - * @param x 阿拉伯数字,可以为{@link Number}对象,也可以是普通对象,最后会使用字符串方式处理 + * @param x 阿拉伯数字,可以为{@link Number}对象,也可以是普通对象,最后会使用字符串方式处理 * @return 英文表达式 */ public static String format(Object x) { @@ -58,7 +58,7 @@ public static String format(Object x) { private static String format(String x) { int z = x.indexOf("."); // 取小数点位置 String lstr = "", rstr = ""; - if (z > -1) { // 看是否有小数,如果有,则分别取左边和右边 + if (z > -1) { // 看是否有小数,如果有,则分别取左边和右边 lstr = x.substring(0, z); rstr = x.substring(z + 1); } else { @@ -86,7 +86,7 @@ private static String format(String x) { lm = transThree(a[i]) + " " + parseMore(String.valueOf(i)) + " " + lm; // 加: // thousand、million、billion } else { - lm = transThree(a[i]); // 防止i=0时, 在多加两个空格. + lm = transThree(a[i]); // 防止i=0时, 在多加两个空格. } } else { lm += transThree(a[i]); diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/ArrayConverter.java b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/ArrayConverter.java index d7982ae1a1..ce1835e507 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/ArrayConverter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/ArrayConverter.java @@ -37,7 +37,7 @@ import java.util.List; /** - * 数组转换器,包括原始类型数组 + * 数组转换器,包括原始类型数组 * * @author Kimi Liu * @version 5.2.2 @@ -137,14 +137,14 @@ private Object convertObjectToArray(Object value) { i++; } } else if (value instanceof Iterable) { - // 可循环对象转数组,可循环对象无法获取长度,因此先转为List后转为数组 + // 可循环对象转数组,可循环对象无法获取长度,因此先转为List后转为数组 final List list = IterUtils.toList((Iterable) value); result = Array.newInstance(targetComponentType, list.size()); for (int i = 0; i < list.size(); i++) { Array.set(result, i, converter.convert(targetComponentType, list.get(i))); } } else if (value instanceof Iterator) { - // 可循环对象转数组,可循环对象无法获取长度,因此先转为List后转为数组 + // 可循环对象转数组,可循环对象无法获取长度,因此先转为List后转为数组 final List list = IterUtils.toList((Iterator) value); result = Array.newInstance(targetComponentType, list.size()); for (int i = 0; i < list.size(); i++) { @@ -162,7 +162,7 @@ private Object convertObjectToArray(Object value) { * 单元素数组 * * @param value 被转换的值 - * @return 数组,只包含一个元素 + * @return 数组, 只包含一个元素 */ private Object[] convertToSingleElementArray(Object value) { final Object[] singleElementArray = ArrayUtils.newArray(targetComponentType, 1); diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/BeanConverter.java b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/BeanConverter.java index 8580439b3b..b41d545695 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/BeanConverter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/BeanConverter.java @@ -33,7 +33,7 @@ import java.util.Map; /** - * Bean转换器,支持: + * Bean转换器,支持: *
  * Map =》 Bean
  * Bean =》 Bean
@@ -51,7 +51,7 @@ public class BeanConverter extends AbstractConverter {
     private CopyOptions copyOptions;
 
     /**
-     * 构造,默认转换选项,注入失败的字段忽略
+     * 构造,默认转换选项,注入失败的字段忽略
      *
      * @param beanClass 转换成的目标Bean类
      */
diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/CastConverter.java b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/CastConverter.java
index d7a31a45e6..63a2faaef7 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/CastConverter.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/CastConverter.java
@@ -40,7 +40,7 @@ public class CastConverter extends AbstractConverter {
 
     @Override
     protected T convertInternal(Object value) {
-        // 由于在AbstractConverter中已经有类型判断并强制转换,因此当在上一步强制转换失败时直接抛出异常
+        // 由于在AbstractConverter中已经有类型判断并强制转换,因此当在上一步强制转换失败时直接抛出异常
         throw new InstrumentException("Can not cast value to [{}]", this.targetType);
     }
 
diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/CollectionConverter.java b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/CollectionConverter.java
index 0439b94e8b..4f1e0368b9 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/CollectionConverter.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/CollectionConverter.java
@@ -49,7 +49,7 @@ public class CollectionConverter implements Converter> {
     private final Type elementType;
 
     /**
-     * 构造,默认集合类型使用{@link Collection}
+     * 构造,默认集合类型使用{@link Collection}
      */
     public CollectionConverter() {
         this(Collection.class);
diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/Jdk8DateConverter.java b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/Jdk8DateConverter.java
index 6358c2cb56..dc9fd1c663 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/Jdk8DateConverter.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/Jdk8DateConverter.java
@@ -8,7 +8,7 @@
 
 /**
  * JDK8中新加入的java.time包对象解析转换器
- * 通过反射调用“parse方法”,支持的对象包括: + * 通过反射调用“parse方法”,支持的对象包括: * *
  * java.time.LocalDateTime
diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/MapConverter.java b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/MapConverter.java
index eaecb834cf..c1a683f1ca 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/MapConverter.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/MapConverter.java
@@ -57,7 +57,7 @@ public class MapConverter extends AbstractConverter> {
     private final Type valueType;
 
     /**
-     * 构造,Map的key和value泛型类型自动获取
+     * 构造,Map的key和value泛型类型自动获取
      *
      * @param mapType Map类型
      */
diff --git a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/NumberConverter.java b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/NumberConverter.java
index 8a94a764e6..46758f3a0b 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/convert/impl/NumberConverter.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/convert/impl/NumberConverter.java
@@ -62,7 +62,7 @@ public NumberConverter() {
     /**
      * 构造
      *
-     * @param clazz 需要转换的数字类型,默认 {@link Number}
+     * @param clazz 需要转换的数字类型,默认 {@link Number}
      */
     public NumberConverter(Class clazz) {
         this.targetType = (null == clazz) ? Number.class : clazz;
@@ -173,7 +173,7 @@ protected Number convertInternal(Object value) {
 
     /**
      * 转换为BigDecimal
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value 被转换的值
@@ -190,7 +190,7 @@ private BigDecimal toBigDecimal(Object value) {
             return new BigDecimal((boolean) value ? 1 : 0);
         }
 
-        //对于Double类型,先要转换为String,避免精度问题
+        //对于Double类型,先要转换为String,避免精度问题
         final String valueStr = convertToStr(value);
         if (StringUtils.isBlank(valueStr)) {
             return null;
@@ -200,7 +200,7 @@ private BigDecimal toBigDecimal(Object value) {
 
     /**
      * 转换为BigInteger
-     * 如果给定的值为空,或者转换失败,返回默认值
+     * 如果给定的值为空,或者转换失败,返回默认值
      * 转换失败不会报错
      *
      * @param value 被转换的值
diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/Between.java b/bus-core/src/main/java/org/aoju/bus/core/date/Between.java
index b7868e5e26..760fa5f179 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/date/Between.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/date/Between.java
@@ -49,7 +49,7 @@ public class Between {
 
     /**
      * 构造
-     * 在前的日期做为起始时间,在后的做为结束时间,间隔只保留绝对值正数
+     * 在前的日期做为起始时间,在后的做为结束时间,间隔只保留绝对值正数
      *
      * @param begin 起始时间
      * @param end   结束时间
@@ -60,7 +60,7 @@ public Between(Date begin, Date end) {
 
     /**
      * 构造
-     * 在前的日期做为起始时间,在后的做为结束时间
+     * 在前的日期做为起始时间,在后的做为结束时间
      *
      * @param begin 起始时间
      * @param end   结束时间
@@ -69,7 +69,7 @@ public Between(Date begin, Date end) {
      */
     public Between(Date begin, Date end, boolean isAbs) {
         if (isAbs && begin.after(end)) {
-            // 间隔只为正数的情况下,如果开始日期晚于结束日期,置换之
+            // 间隔只为正数的情况下,如果开始日期晚于结束日期,置换之
             this.begin = end;
             this.end = begin;
         } else {
@@ -80,7 +80,7 @@ public Between(Date begin, Date end, boolean isAbs) {
 
     /**
      * 创建
-     * 在前的日期做为起始时间,在后的做为结束时间,间隔只保留绝对值正数
+     * 在前的日期做为起始时间,在后的做为结束时间,间隔只保留绝对值正数
      *
      * @param begin 起始时间
      * @param end   结束时间
@@ -92,7 +92,7 @@ public static Between create(Date begin, Date end) {
 
     /**
      * 创建
-     * 在前的日期做为起始时间,在后的做为结束时间,间隔只保留绝对值正数
+     * 在前的日期做为起始时间,在后的做为结束时间,间隔只保留绝对值正数
      *
      * @param begin 起始时间
      * @param end   结束时间
@@ -118,7 +118,7 @@ public long between(Fields.Unit unit) {
 
     /**
      * 计算两个日期相差月数
-     * 在非重置情况下,如果起始日期的天小于结束日期的天,月数要少算1(不足1个月)
+     * 在非重置情况下,如果起始日期的天小于结束日期的天,月数要少算1(不足1个月)
      *
      * @param isReset 是否重置时间为起始时间(重置天时分秒)
      * @return 相差月数
@@ -144,7 +144,7 @@ public long betweenMonth(boolean isReset) {
 
     /**
      * 计算两个日期相差年数
-     * 在非重置情况下,如果起始日期的月小于结束日期的月,年数要少算1(不足1年)
+     * 在非重置情况下,如果起始日期的月小于结束日期的月,年数要少算1(不足1年)
      *
      * @param isReset 是否重置时间为起始时间(重置月天时分秒)
      * @return 相差年数
diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/DateTime.java b/bus-core/src/main/java/org/aoju/bus/core/date/DateTime.java
index ccb3bb1c86..70c7128d87 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/date/DateTime.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/date/DateTime.java
@@ -29,10 +29,12 @@
 import org.aoju.bus.core.date.format.FastDateFormat;
 import org.aoju.bus.core.lang.exception.InstrumentException;
 import org.aoju.bus.core.utils.DateUtils;
+import org.aoju.bus.core.utils.ObjectUtils;
 
 import java.sql.Timestamp;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
+import java.time.ZoneId;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Locale;
@@ -54,7 +56,7 @@ public class DateTime extends Date {
      */
     private boolean mutable = true;
     /**
-     * 一周的第一天,默认是周一, 在设置或获得 WEEK_OF_MONTH 或 WEEK_OF_YEAR 字段时,Calendar 必须确定一个月或一年的第一个星期,以此作为参考点。
+     * 一周的第一天,默认是周一, 在设置或获得 WEEK_OF_MONTH 或 WEEK_OF_YEAR 字段时,Calendar 必须确定一个月或一年的第一个星期,以此作为参考点
      */
     private Fields.Week firstDayOfWeek = Fields.Week.MONDAY;
     /**
@@ -154,7 +156,7 @@ public DateTime(String dateStr, DateFormat dateFormat) {
      * 构造
      *
      * @param dateStr    Date字符串
-     * @param dateParser 格式化器 {@link DateParser},可以使用 {@link FastDateFormat}
+     * @param dateParser 格式化器 {@link DateParser},可以使用 {@link FastDateFormat}
      * @see Fields
      */
     public DateTime(String dateStr, DateParser dateParser) {
@@ -237,7 +239,7 @@ private static Date parse(String dateStr, DateParser parser) {
 
     /**
      * 获得日期的某个部分
-     * 例如获得年的部分,则使用 getField(DatePart.YEAR)
+     * 例如获得年的部分,则使用 getField(DatePart.YEAR)
      *
      * @param field 表示日期的哪个部分的枚举 {@link Fields}
      * @return 某个部分的值
@@ -248,7 +250,7 @@ public int getField(Fields.DateField field) {
 
     /**
      * 获得日期的某个部分
-     * 例如获得年的部分,则使用 getField(Calendar.YEAR)
+     * 例如获得年的部分,则使用 getField(Calendar.YEAR)
      *
      * @param field 表示日期的哪个部分的int值 {@link Calendar}
      * @return 某个部分的值
@@ -274,7 +276,7 @@ public int year() {
     }
 
     /**
-     * 获得当前日期所属季度,从1开始计数
+     * 获得当前日期所属季度,从1开始计数
      *
      * @return 第几个季度 {@link Fields}
      */
@@ -292,7 +294,7 @@ public Fields.Quarter quarterEnum() {
     }
 
     /**
-     * 获得月份,从0开始计数
+     * 获得月份,从0开始计数
      *
      * @return 月份
      */
@@ -301,8 +303,8 @@ public int month() {
     }
 
     /**
-     * 获得月份,从1开始计数
-     * 由于{@link Calendar} 中的月份按照0开始计数,导致某些需求容易误解,因此如果想用1表示一月,2表示二月则调用此方法
+     * 获得月份,从1开始计数
+     * 由于{@link Calendar} 中的月份按照0开始计数,导致某些需求容易误解,因此如果想用1表示一月,2表示二月则调用此方法
      *
      * @return 月份
      */
@@ -321,9 +323,9 @@ public Fields.Month monthEnum() {
 
     /**
      * 获得指定日期是所在年份的第几周
-     * 此方法返回值与一周的第一天有关,比如:
-     * 2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2)
-     * 如果一周的第一天为周一,那这天是第一周(返回1)
+     * 此方法返回值与一周的第一天有关,比如:
+     * 2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2)
+     * 如果一周的第一天为周一,那这天是第一周(返回1)
      *
      * @return 周
      */
@@ -333,9 +335,9 @@ public int weekOfYear() {
 
     /**
      * 获得指定日期是所在月份的第几周
-     * 此方法返回值与一周的第一天有关,比如:
-     * 2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2)
-     * 如果一周的第一天为周一,那这天是第一周(返回1)
+     * 此方法返回值与一周的第一天有关,比如:
+     * 2016年1月3日为周日,如果一周的第一天为周日,那这天是第二周(返回2)
+     * 如果一周的第一天为周一,那这天是第一周(返回1)
      *
      * @return 周
      */
@@ -353,7 +355,7 @@ public int dayOfMonth() {
     }
 
     /**
-     * 获得指定日期是星期几,1表示周日,2表示周一
+     * 获得指定日期是星期几,1表示周日,2表示周一
      *
      * @return 星期几
      */
@@ -493,7 +495,7 @@ public Calendar toCalendar(TimeZone zone, Locale locale) {
 
     /**
      * 转换为 {@link Date}
-     * 考虑到很多框架(例如Hibernate)的兼容性,提供此方法返回JDK原生的Date对象
+     * 考虑到很多框架(例如Hibernate)的兼容性,提供此方法返回JDK原生的Date对象
      *
      * @return {@link Date}
      * @since 5.2.2
@@ -625,8 +627,8 @@ public boolean isAfterOrEquals(Date date) {
 
     /**
      * 对象是否可变
-     * 如果为不可变对象,以下方法将返回新方法:
-     * 如果为不可变对象,{@link DateTime#setTime(long)}将抛出异常
+     * 如果为不可变对象,以下方法将返回新方法:
+     * 如果为不可变对象,{@link DateTime#setTime(long)}将抛出异常
      *
      * @return 对象是否可变
      */
@@ -635,8 +637,8 @@ public boolean isMutable() {
     }
 
     /**
-     * 设置对象是否可变 如果为不可变对象,以下方法将返回新方法:
-     * 如果为不可变对象,{@link DateTime#setTime(long)}将抛出异常
+     * 设置对象是否可变 如果为不可变对象,以下方法将返回新方法:
+     * 如果为不可变对象,{@link DateTime#setTime(long)}将抛出异常
      *
      * @param mutable 是否可变
      * @return this
@@ -647,7 +649,7 @@ public DateTime setMutable(boolean mutable) {
     }
 
     /**
-     * 获得一周的第一天,默认为周一
+     * 获得一周的第一天,默认为周一
      *
      * @return 一周的第一天
      */
@@ -657,7 +659,7 @@ public Fields.Week getFirstDayOfWeek() {
 
     /**
      * 设置一周的第一天
-     * JDK的Calendar中默认一周的第一天是周日,将此默认值设置为周一
+     * JDK的Calendar中默认一周的第一天是周日,将此默认值设置为周一
      * 设置一周的第一天主要影响{@link #weekOfMonth()}和{@link #weekOfYear()} 两个方法
      *
      * @param firstDayOfWeek 一周的第一天
@@ -670,14 +672,35 @@ public DateTime setFirstDayOfWeek(Fields.Week firstDayOfWeek) {
         return this;
     }
 
+    /**
+     * 获取时区ID
+     *
+     * @return 时区ID
+     * @since 5.0.5
+     */
+    public ZoneId getZoneId() {
+        return this.timeZone.toZoneId();
+    }
+
+    /**
+     * 获取时区
+     *
+     * @return 时区
+     * @since 5.0.5
+     */
+    public TimeZone getTimeZone() {
+        return this.timeZone;
+    }
+
     /**
      * 设置时区
      *
      * @param timeZone 时区
      * @return this
+     * @since 4.1.2
      */
     public DateTime setTimeZone(TimeZone timeZone) {
-        this.timeZone = timeZone;
+        this.timeZone = ObjectUtils.defaultIfNull(timeZone, TimeZone.getDefault());
         return this;
     }
 
@@ -727,7 +750,7 @@ public String toTimeStr() {
     /**
      * 转为字符串
      *
-     * @param format 日期格式,常用格式见: {@link Fields}
+     * @param format 日期格式,常用格式见: {@link Fields}
      * @return String
      */
     public String toString(String format) {
diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/StopWatch.java b/bus-core/src/main/java/org/aoju/bus/core/date/StopWatch.java
index 4adb4196ef..e3bc09134f 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/date/StopWatch.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/date/StopWatch.java
@@ -12,7 +12,7 @@
 
 /**
  * 秒表封装
- * 此工具用于存储一组任务的耗时时间,并一次性打印对比
+ * 此工具用于存储一组任务的耗时时间,并一次性打印对比
  * 使用方法如下:
  *
  * 
@@ -39,7 +39,7 @@
 public class StopWatch {
 
     /**
-     * 秒表唯一标识,用于多个秒表对象的区分
+     * 秒表唯一标识,用于多个秒表对象的区分
      */
     private final String id;
     private List taskList;
@@ -67,14 +67,14 @@ public class StopWatch {
     private long totalTimeNanos;
 
     /**
-     * 构造,不启动任何任务
+     * 构造,不启动任何任务
      */
     public StopWatch() {
         this(Normal.EMPTY);
     }
 
     /**
-     * 构造,不启动任何任务
+     * 构造,不启动任何任务
      *
      * @param id 用于标识秒表的唯一ID
      */
@@ -83,10 +83,10 @@ public StopWatch(String id) {
     }
 
     /**
-     * 构造,不启动任何任务
+     * 构造,不启动任何任务
      *
      * @param id           用于标识秒表的唯一ID
-     * @param keepTaskList 是否在停止后保留任务,{@code false} 表示停止运行后不保留任务
+     * @param keepTaskList 是否在停止后保留任务,{@code false} 表示停止运行后不保留任务
      */
     public StopWatch(String id, boolean keepTaskList) {
         this.id = id;
@@ -96,7 +96,7 @@ public StopWatch(String id, boolean keepTaskList) {
     }
 
     /**
-     * 获取{@link StopWatch} 的ID,用于多个秒表对象的区分
+     * 获取{@link StopWatch} 的ID,用于多个秒表对象的区分
      *
      * @return the ID 空字符串为
      * @see #StopWatch(String)
@@ -106,7 +106,7 @@ public String getId() {
     }
 
     /**
-     * 设置是否在停止后保留任务,{@code false} 表示停止运行后不保留任务
+     * 设置是否在停止后保留任务,{@code false} 表示停止运行后不保留任务
      *
      * @param keepTaskList 是否在停止后保留任务
      */
@@ -174,9 +174,9 @@ public boolean isRunning() {
     }
 
     /**
-     * 获取当前任务名,{@code null} 表示无任务
+     * 获取当前任务名,{@code null} 表示无任务
      *
-     * @return 当前任务名,{@code null} 表示无任务
+     * @return 当前任务名,{@code null} 表示无任务
      * @see #isRunning()
      */
     public String currentTaskName() {
@@ -225,7 +225,7 @@ public String getLastTaskName() throws IllegalStateException {
     /**
      * 获取最后的任务对象
      *
-     * @return {@link TaskInfo} 任务对象,包括任务名和花费时间
+     * @return {@link TaskInfo} 任务对象,包括任务名和花费时间
      * @throws IllegalStateException 无任务
      */
     public TaskInfo getLastTaskInfo() throws IllegalStateException {
diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/SystemClock.java b/bus-core/src/main/java/org/aoju/bus/core/date/SystemClock.java
index 6dae10dde4..54a65841b5 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/date/SystemClock.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/date/SystemClock.java
@@ -32,9 +32,9 @@
 /**
  * 系统时钟
  * 高并发场景下System.currentTimeMillis()的性能问题的优化
- * System.currentTimeMillis()的调用比new一个普通对象要耗时的多(具体耗时高出多少我还没测试过,有人说是100倍左右)
+ * System.currentTimeMillis()的调用比new一个普通对象要耗时的多(具体耗时高出多少我还没测试过,有人说是100倍左右)
  * System.currentTimeMillis()之所以慢是因为去跟系统打了一次交道
- * 后台定时更新时钟,JVM退出时,线程自动回收
+ * 后台定时更新时钟,JVM退出时,线程自动回收
  *
  * @author Kimi Liu
  * @version 5.2.2
@@ -43,7 +43,7 @@
 public class SystemClock {
 
     /**
-     * 时钟更新间隔,单位毫秒
+     * 时钟更新间隔,单位毫秒
      */
     private final long period;
     /**
diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/TimeInterval.java b/bus-core/src/main/java/org/aoju/bus/core/date/TimeInterval.java
index 9910aa9f94..ad10f41e86 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/date/TimeInterval.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/date/TimeInterval.java
@@ -28,7 +28,7 @@
 
 /**
  * 计时器
- * 计算某个过程花费的时间,精确到毫秒
+ * 计算某个过程花费的时间,精确到毫秒
  *
  * @author Kimi Liu
  * @version 5.2.2
@@ -79,7 +79,7 @@ public TimeInterval restart() {
 
     /**
      * 从开始到当前的间隔时间(毫秒数)
-     * 如果使用纳秒计时,返回纳秒差,否则返回毫秒差
+     * 如果使用纳秒计时,返回纳秒差,否则返回毫秒差
      *
      * @return 从开始到当前的间隔时间(毫秒数)
      */
@@ -97,45 +97,45 @@ public long intervalMs() {
     }
 
     /**
-     * 从开始到当前的间隔秒数,取绝对值
+     * 从开始到当前的间隔秒数,取绝对值
      *
-     * @return 从开始到当前的间隔秒数,取绝对值
+     * @return 从开始到当前的间隔秒数, 取绝对值
      */
     public long intervalSecond() {
         return intervalMs() / Fields.Unit.SECOND.getMillis();
     }
 
     /**
-     * 从开始到当前的间隔分钟数,取绝对值
+     * 从开始到当前的间隔分钟数,取绝对值
      *
-     * @return 从开始到当前的间隔分钟数,取绝对值
+     * @return 从开始到当前的间隔分钟数, 取绝对值
      */
     public long intervalMinute() {
         return intervalMs() / Fields.Unit.MINUTE.getMillis();
     }
 
     /**
-     * 从开始到当前的间隔小时数,取绝对值
+     * 从开始到当前的间隔小时数,取绝对值
      *
-     * @return 从开始到当前的间隔小时数,取绝对值
+     * @return 从开始到当前的间隔小时数, 取绝对值
      */
     public long intervalHour() {
         return intervalMs() / Fields.Unit.HOUR.getMillis();
     }
 
     /**
-     * 从开始到当前的间隔天数,取绝对值
+     * 从开始到当前的间隔天数,取绝对值
      *
-     * @return 从开始到当前的间隔天数,取绝对值
+     * @return 从开始到当前的间隔天数, 取绝对值
      */
     public long intervalDay() {
         return intervalMs() / Fields.Unit.DAY.getMillis();
     }
 
     /**
-     * 从开始到当前的间隔周数,取绝对值
+     * 从开始到当前的间隔周数,取绝对值
      *
-     * @return 从开始到当前的间隔周数,取绝对值
+     * @return 从开始到当前的间隔周数, 取绝对值
      */
     public long intervalWeek() {
         return intervalMs() / Fields.Unit.WEEK.getMillis();
diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/format/AbstractDateBasic.java b/bus-core/src/main/java/org/aoju/bus/core/date/format/AbstractDateBasic.java
index d11f1c6d74..b23424572c 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/date/format/AbstractDateBasic.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/date/format/AbstractDateBasic.java
@@ -50,7 +50,7 @@ public abstract class AbstractDateBasic implements DateBasic, Serializable {
     protected final Locale locale;
 
     /**
-     * 构造,内部使用
+     * 构造,内部使用
      *
      * @param pattern  使用{@link java.text.SimpleDateFormat} 相同的日期格式
      * @param timeZone 非空时区{@link TimeZone}
diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/format/BetweenFormat.java b/bus-core/src/main/java/org/aoju/bus/core/date/format/BetweenFormat.java
index 667fe69efd..c87d35fdd2 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/date/format/BetweenFormat.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/date/format/BetweenFormat.java
@@ -52,7 +52,7 @@ public class BetweenFormat {
      * 构造
      *
      * @param betweenMs 日期间隔
-     * @param level     级别,按照天、小时、分、秒、毫秒分为5个等级,根据传入等级,格式化到相应级别
+     * @param level     级别,按照天、小时、分、秒、毫秒分为5个等级,根据传入等级,格式化到相应级别
      */
     public BetweenFormat(long betweenMs, Fields.Level level) {
         this(betweenMs, level, 0);
@@ -62,8 +62,8 @@ public BetweenFormat(long betweenMs, Fields.Level level) {
      * 构造
      *
      * @param betweenMs     日期间隔
-     * @param level         级别,按照天、小时、分、秒、毫秒分为5个等级,根据传入等级,格式化到相应级别
-     * @param levelMaxCount 格式化级别的最大个数,假如级别个数为1,但是级别到秒,那只显示一个级别
+     * @param level         级别,按照天、小时、分、秒、毫秒分为5个等级,根据传入等级,格式化到相应级别
+     * @param levelMaxCount 格式化级别的最大个数,假如级别个数为1,但是级别到秒,那只显示一个级别
      */
     public BetweenFormat(long betweenMs, Fields.Level level, int levelMaxCount) {
         this.betweenMs = betweenMs;
@@ -160,7 +160,7 @@ public String toString() {
 
     /**
      * 等级数量是否有效
-     * 有效的定义是:levelMaxCount大于0(被设置),当前等级数量没有超过这个最大值
+     * 有效的定义是:levelMaxCount大于0(被设置),当前等级数量没有超过这个最大值
      *
      * @param levelCount 登记数量
      * @return 是否有效
diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/format/DateParser.java b/bus-core/src/main/java/org/aoju/bus/core/date/format/DateParser.java
index c584c87794..fea76c867f 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/date/format/DateParser.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/date/format/DateParser.java
@@ -29,7 +29,7 @@
 import java.util.Date;
 
 /**
- * 日期解析接口,用于解析日期字符串为 {@link Date} 对象
+ * 日期解析接口,用于解析日期字符串为 {@link Date} 对象
  * Thanks to Apache Commons Lang 3.5
  *
  * @author Kimi Liu
@@ -44,7 +44,7 @@ public interface DateParser extends DateBasic {
      *
      * @param source 日期字符串
      * @return {@link Date}
-     * @throws ParseException 转换异常,被转换的字符串格式错误。
+     * @throws ParseException 转换异常,被转换的字符串格式错误
      */
     Date parse(String source) throws ParseException;
 
@@ -65,7 +65,7 @@ public interface DateParser extends DateBasic {
      * Upon parse failure, ParsePosition error index is updated to the offset of the source text which does not match the supplied format.
      *
      * @param source   被转换的日期字符串
-     * @param pos      定义开始转换的位置,转换结束后更新转换到的位置
+     * @param pos      定义开始转换的位置,转换结束后更新转换到的位置
      * @param calendar The calendar into which to set parsed fields.
      * @return true, if source has been parsed (pos parsePosition is updated); otherwise false (and pos errorIndex is updated)
      * @throws IllegalArgumentException when Calendar has been set to be not lenient, and a parsed field is out of range.
diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDateFormat.java b/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDateFormat.java
index 3f0e2fe9a9..7b09174fb8 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDateFormat.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDateFormat.java
@@ -31,7 +31,7 @@
 
 /**
  * 

- * FastDateFormat 是一个线程安全的 {@link java.text.SimpleDateFormat} 实现。 + * FastDateFormat 是一个线程安全的 {@link java.text.SimpleDateFormat} 实现 *

* *

@@ -102,7 +102,7 @@ protected FastDateFormat(final String pattern, final TimeZone timeZone, final Lo } /** - * 获得 {@link FastDateFormat} 实例,使用默认格式和地区 + * 获得 {@link FastDateFormat} 实例,使用默认格式和地区 * * @return {@link FastDateFormat} */ @@ -111,7 +111,7 @@ public static FastDateFormat getInstance() { } /** - * 获得 {@link FastDateFormat} 实例,使用默认地区 + * 获得 {@link FastDateFormat} 实例,使用默认地区 * 支持缓存 * * @param pattern 使用{@link java.text.SimpleDateFormat} 相同的日期格式 diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDateParser.java b/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDateParser.java index b20fae8ccb..044679e52a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDateParser.java +++ b/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDateParser.java @@ -35,7 +35,7 @@ import java.util.regex.Pattern; /** - * {@link java.text.SimpleDateFormat} 的线程安全版本,用于解析日期字符串并转换为 {@link Date} 对象 + * {@link java.text.SimpleDateFormat} 的线程安全版本,用于解析日期字符串并转换为 {@link Date} 对象 * * @author Kimi Liu * @version 5.2.2 @@ -98,7 +98,7 @@ int modify(final FastDateParser parser, final int iValue) { private static final Strategy SECOND_STRATEGY = new NumberStrategy(Calendar.SECOND); private static final Strategy MILLISECOND_STRATEGY = new NumberStrategy(Calendar.MILLISECOND); /** - * 世纪:2000年前为19, 之后为20 + * 世纪:2000年前为19, 之后为20 */ private final int century; private final int startYear; diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDatePrinter.java b/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDatePrinter.java index a4a0d6c533..5a3110ac42 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDatePrinter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/date/format/FastDatePrinter.java @@ -33,7 +33,7 @@ import java.util.concurrent.ConcurrentMap; /** - * {@link java.text.SimpleDateFormat} 的线程安全版本,用于将 {@link Date} 格式化输出 + * {@link java.text.SimpleDateFormat} 的线程安全版本,用于将 {@link Date} 格式化输出 * * @author Kimi Liu * @version 5.2.2 @@ -54,7 +54,7 @@ class FastDatePrinter extends AbstractDateBasic implements DatePrinter { private transient int mMaxLengthEstimate; /** - * 构造,内部使用 + * 构造,内部使用 * * @param pattern 使用{@link java.text.SimpleDateFormat} 相同的日期格式 * @param timeZone 非空时区{@link TimeZone} diff --git a/bus-core/src/main/java/org/aoju/bus/core/date/format/FormatCache.java b/bus-core/src/main/java/org/aoju/bus/core/date/format/FormatCache.java index 645d6d824d..ca38087aa8 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/date/format/FormatCache.java +++ b/bus-core/src/main/java/org/aoju/bus/core/date/format/FormatCache.java @@ -101,9 +101,9 @@ public F getInstance() { /** * 使用 pattern, time zone and locale 获得对应的 格式化器 * - * @param pattern 非空日期格式,使用与 {@link SimpleDateFormat}相同格式 - * @param timeZone 时区,默认当前时区 - * @param locale 地区,默认使用当前地区 + * @param pattern 非空日期格式,使用与 {@link SimpleDateFormat}相同格式 + * @param timeZone 时区,默认当前时区 + * @param locale 地区,默认使用当前地区 * @return 格式化器 * @throws IllegalArgumentException pattern 无效或null */ @@ -134,9 +134,9 @@ public F getInstance(final String pattern, TimeZone timeZone, Locale locale) { /** * 创建格式化器 * - * @param pattern 非空日期格式,使用与 {@link SimpleDateFormat}相同格式 - * @param timeZone 时区,默认当前时区 - * @param locale 地区,默认使用当前地区 + * @param pattern 非空日期格式,使用与 {@link SimpleDateFormat}相同格式 + * @param timeZone 时区,默认当前时区 + * @param locale 地区,默认使用当前地区 * @return 格式化器 * @throws IllegalArgumentException pattern 无效或null */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/getter/BasicType.java b/bus-core/src/main/java/org/aoju/bus/core/getter/BasicType.java index c0c1d6aa19..9addb09812 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/getter/BasicType.java +++ b/bus-core/src/main/java/org/aoju/bus/core/getter/BasicType.java @@ -139,7 +139,7 @@ public interface BasicType { * @param 枚举类型 * @param clazz Enum的Class * @param key KEY - * @return Enum类型的值,无则返回Null + * @return Enum类型的值, 无则返回Null */ > E getEnum(Class clazz, K key); diff --git a/bus-core/src/main/java/org/aoju/bus/core/getter/OptArrayType.java b/bus-core/src/main/java/org/aoju/bus/core/getter/OptArrayType.java index 05fc13dfff..ffbfa9b70b 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/getter/OptArrayType.java +++ b/bus-core/src/main/java/org/aoju/bus/core/getter/OptArrayType.java @@ -29,7 +29,7 @@ /** * 可选默认值的数组类型的Get接口 * 提供一个统一的接口定义返回不同类型的值(基本类型) - * 如果值不存在或获取错误,返回默认值 + * 如果值不存在或获取错误,返回默认值 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/getter/OptBasicType.java b/bus-core/src/main/java/org/aoju/bus/core/getter/OptBasicType.java index ed97c75594..80ac48a86c 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/getter/OptBasicType.java +++ b/bus-core/src/main/java/org/aoju/bus/core/getter/OptBasicType.java @@ -30,7 +30,7 @@ /** * 可选默认值的基本类型的getter接口 * 提供一个统一的接口定义返回不同类型的值(基本类型) - * 如果值不存在或获取错误,返回默认值 + * 如果值不存在或获取错误,返回默认值 * * @author Kimi Liu * @version 5.2.2 @@ -43,117 +43,117 @@ public interface OptBasicType { * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ Object getObj(K key, Object defaultValue); /** * 获取字符串型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ String getStr(K key, String defaultValue); /** * 获取int型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ Integer getInt(K key, Integer defaultValue); /** * 获取short型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ Short getShort(K key, Short defaultValue); /** * 获取boolean型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ Boolean getBool(K key, Boolean defaultValue); /** * 获取Long型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ Long getLong(K key, Long defaultValue); /** * 获取char型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ Character getChar(K key, Character defaultValue); /** * 获取float型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ Float getFloat(K key, Float defaultValue); /** * 获取double型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ Double getDouble(K key, Double defaultValue); /** * 获取byte型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ Byte getByte(K key, Byte defaultValue); /** * 获取BigDecimal型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ BigDecimal getBigDecimal(K key, BigDecimal defaultValue); /** * 获取BigInteger型属性值 - * 若获得的值为不可见字符,使用默认值 + * 若获得的值为不可见字符,使用默认值 * * @param key 属性名 * @param defaultValue 默认值 - * @return 属性值,无对应值返回defaultValue + * @return 属性值, 无对应值返回defaultValue */ BigInteger getBigInteger(K key, BigInteger defaultValue); @@ -164,7 +164,7 @@ public interface OptBasicType { * @param clazz Enum的Class * @param key KEY * @param defaultValue 默认值 - * @return Enum类型的值,无则返回Null + * @return Enum类型的值, 无则返回Null */ > E getEnum(Class clazz, K key, E defaultValue); diff --git a/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullObject.java b/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullObject.java index b3c59fe745..dbf2cb9180 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullObject.java +++ b/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullObject.java @@ -30,9 +30,9 @@ import java.util.Date; /** - * 基本类型的getter接口抽象实现,所有类型的值获取都是通过将getObj获得的值转换而来 - * 用户只需实现getObj方法即可,其他类型将会从Object结果中转换 - * 在不提供默认值的情况下, 如果值不存在或获取错误,返回null + * 基本类型的getter接口抽象实现,所有类型的值获取都是通过将getObj获得的值转换而来 + * 用户只需实现getObj方法即可,其他类型将会从Object结果中转换 + * 在不提供默认值的情况下, 如果值不存在或获取错误,返回null * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullString.java b/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullString.java index 189051700d..226194bbfe 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullString.java +++ b/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullString.java @@ -30,8 +30,8 @@ import java.util.Date; /** - * 基本类型的getter接口抽象实现,所有类型的值获取都是通过将String转换而来 - * 用户只需实现getStr方法即可,其他类型将会从String结果中转换 在不提供默认值的情况下, 如果值不存在或获取错误,返回null + * 基本类型的getter接口抽象实现,所有类型的值获取都是通过将String转换而来 + * 用户只需实现getStr方法即可,其他类型将会从String结果中转换 在不提供默认值的情况下, 如果值不存在或获取错误,返回null * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullType.java b/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullType.java index fa342c5ee9..21a7bfbb17 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullType.java +++ b/bus-core/src/main/java/org/aoju/bus/core/getter/OptNullType.java @@ -30,7 +30,7 @@ /** * 基本类型的getter接口抽象实现 * 提供一个统一的接口定义返回不同类型的值(基本类型) - * 在不提供默认值的情况下, 如果值不存在或获取错误,返回null + * 在不提供默认值的情况下, 如果值不存在或获取错误,返回null * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/image/Graphics.java b/bus-core/src/main/java/org/aoju/bus/core/image/Graphics.java index c18cd71064..27a092d25e 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/image/Graphics.java +++ b/bus-core/src/main/java/org/aoju/bus/core/image/Graphics.java @@ -41,7 +41,7 @@ public class Graphics { * 创建{@link Graphics2D} * * @param image {@link BufferedImage} - * @param color {@link Color}背景颜色以及当前画笔颜色,{@code null}表示不设置背景色 + * @param color {@link Color}背景颜色以及当前画笔颜色,{@code null}表示不设置背景色 * @return {@link Graphics2D} */ public static Graphics2D createGraphics(BufferedImage image, Color color) { @@ -58,11 +58,11 @@ public static Graphics2D createGraphics(BufferedImage image, Color color) { /** * 获取文字居中高度的Y坐标(距离上边距距离) - * 此方法依赖FontMetrics,如果获取失败,默认为背景高度的1/3 + * 此方法依赖FontMetrics,如果获取失败,默认为背景高度的1/3 * * @param g {@link Graphics2D}画笔 * @param backgroundHeight 背景高度 - * @return 最小高度,-1表示无法获取 + * @return 最小高度,-1表示无法获取 */ public static int getCenterY(java.awt.Graphics g, int backgroundHeight) { // 获取允许文字最小高度 @@ -70,7 +70,7 @@ public static int getCenterY(java.awt.Graphics g, int backgroundHeight) { try { metrics = g.getFontMetrics(); } catch (Exception e) { - // 此处报告bug某些情况下会抛出IndexOutOfBoundsException,在此做容错处理 + // 此处报告bug某些情况下会抛出IndexOutOfBoundsException,在此做容错处理 } int y; if (null != metrics) { @@ -82,7 +82,7 @@ public static int getCenterY(java.awt.Graphics g, int backgroundHeight) { } /** - * 绘制字符串,使用随机颜色,默认抗锯齿 + * 绘制字符串,使用随机颜色,默认抗锯齿 * * @param g {@link java.awt.Graphics}画笔 * @param str 字符串 @@ -96,12 +96,12 @@ public static java.awt.Graphics drawStringColourful(java.awt.Graphics g, String } /** - * 绘制字符串,默认抗锯齿 + * 绘制字符串,默认抗锯齿 * * @param g {@link java.awt.Graphics}画笔 * @param str 字符串 * @param font 字体 - * @param color 字体颜色,{@code null} 表示使用随机颜色(每个字符单独随机) + * @param color 字体颜色,{@code null} 表示使用随机颜色(每个字符单独随机) * @param width 字符串背景的宽度 * @param height 字符串背景的高度 * @return 画笔对象 @@ -124,7 +124,7 @@ public static java.awt.Graphics drawString(java.awt.Graphics g, String str, Font int charWidth = width / len; for (int i = 0; i < len; i++) { if (null == color) { - // 产生随机的颜色值,让输出的每个字符的颜色值都将不同。 + // 产生随机的颜色值,让输出的每个字符的颜色值都将不同 g.setColor(ImageUtils.randomColor()); } g.drawString(String.valueOf(str.charAt(i)), i * charWidth, midY); diff --git a/bus-core/src/main/java/org/aoju/bus/core/image/Image.java b/bus-core/src/main/java/org/aoju/bus/core/image/Image.java index 84bc4efb2d..f2a80350d0 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/image/Image.java +++ b/bus-core/src/main/java/org/aoju/bus/core/image/Image.java @@ -59,7 +59,7 @@ public class Image implements Serializable { private BufferedImage srcImage; private java.awt.Image targetImage; /** - * 目标图片文件格式,用于写出 + * 目标图片文件格式,用于写出 */ private String targetImageType = FileType.IMAGE_TYPE_JPG; /** @@ -67,7 +67,7 @@ public class Image implements Serializable { */ private boolean positionBaseCentre = true; /** - * 图片输出质量,用于压缩 + * 图片输出质量,用于压缩 */ private float quality = -1; @@ -155,7 +155,7 @@ public static Image from(java.awt.Image image) { * * @param backgroundImg 背景图片 * @param image 要绘制的图片 - * @param rectangle 矩形对象,表示矩形区域的x,y,width,height,x,y从背景图片中心计算 + * @param rectangle 矩形对象,表示矩形区域的x,y,width,height,x,y从背景图片中心计算 * @return 绘制后的背景 */ private static BufferedImage draw(BufferedImage backgroundImg, java.awt.Image image, Rectangle rectangle, float alpha) { @@ -197,7 +197,7 @@ private static Rectangle calcRotatedSize(int width, int height, int degree) { } /** - * 设置目标图片文件格式,用于写出 + * 设置目标图片文件格式,用于写出 * * @param imgType 图片格式 * @return this @@ -221,9 +221,9 @@ public Image setPositionBaseCentre(boolean positionBaseCentre) { } /** - * 设置图片输出质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩 + * 设置图片输出质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩 * - * @param quality 质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩 + * @param quality 质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩 * @return the image */ public Image setQuality(double quality) { @@ -231,9 +231,9 @@ public Image setQuality(double quality) { } /** - * 设置图片输出质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩 + * 设置图片输出质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩 * - * @param quality 质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩 + * @param quality 质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩 * @return image */ public Image setQuality(float quality) { @@ -248,7 +248,7 @@ public Image setQuality(float quality) { /** * 缩放图像(按比例缩放) * - * @param scale 缩放比例。比例大于1时为放大,小于1大于0为缩小 + * @param scale 缩放比例 比例大于1时为放大,小于1大于0为缩小 * @return this */ public Image scale(float scale) { @@ -313,12 +313,12 @@ public Image scale(int width, int height) { } /** - * 等比缩放图像,此方法按照按照给定的长宽等比缩放图片,按照长宽缩放比最多的一边等比缩放,空白部分填充背景色 + * 等比缩放图像,此方法按照按照给定的长宽等比缩放图片,按照长宽缩放比最多的一边等比缩放,空白部分填充背景色 * 缩放后默认为jpeg格式 * * @param width 缩放后的宽度 * @param height 缩放后的高度 - * @param fixedColor 比例不对时补充的颜色,不补充为null + * @param fixedColor 比例不对时补充的颜色,不补充为null * @return this */ public Image scale(int width, int height, Color fixedColor) { @@ -327,15 +327,15 @@ public Image scale(int width, int height, Color fixedColor) { int srcWidth = srcImage.getWidth(null); double heightRatio = NumberUtils.div(height, srcHeight); double widthRatio = NumberUtils.div(width, srcWidth); - if (heightRatio == widthRatio) { - // 长宽都按照相同比例缩放时,返回缩放后的图片 - return scale(width, height); - } - // 宽缩放比例多就按照宽缩放,否则按照高缩放 - if (widthRatio < heightRatio) { + if (widthRatio == heightRatio) { + // 长宽都按照相同比例缩放时,返回缩放后的图片 + scale(width, height); + } else if (widthRatio < heightRatio) { + // 宽缩放比例多就按照宽缩放 scale(width, (int) (srcHeight * widthRatio)); } else { + // 否则按照高缩放 scale((int) (srcWidth * heightRatio), height); } @@ -365,7 +365,7 @@ public Image scale(int width, int height, Color fixedColor) { /** * 图像切割(按指定起点坐标和宽高切割) * - * @param rectangle 矩形对象,表示矩形区域的x,y,width,height + * @param rectangle 矩形对象,表示矩形区域的x,y,width,height * @return this */ public Image cut(Rectangle rectangle) { @@ -379,7 +379,7 @@ public Image cut(Rectangle rectangle) { } /** - * 图像切割为圆形(按指定起点坐标和半径切割),填充满整个图片(直径取长宽最小值) + * 图像切割为圆形(按指定起点坐标和半径切割),填充满整个图片(直径取长宽最小值) * * @param x 原图的x坐标起始位置 * @param y 原图的y坐标起始位置 @@ -394,7 +394,7 @@ public Image cut(int x, int y) { * * @param x 原图的x坐标起始位置 * @param y 原图的y坐标起始位置 - * @param radius 半径,小于0表示填充满整个图片(直径取长宽最小值) + * @param radius 半径,小于0表示填充满整个图片(直径取长宽最小值) * @return this */ public Image cut(int x, int y, int radius) { @@ -421,7 +421,7 @@ public Image cut(int x, int y, int radius) { /** * 图片圆角处理 * - * @param arc 圆角弧度,0~1,为长宽占比 + * @param arc 圆角弧度,0~1,为长宽占比 * @return this */ public Image round(double arc) { @@ -473,8 +473,8 @@ public Image binary() { * @param pressText 水印文字 * @param color 水印的字体颜色 * @param font {@link Font} 字体相关信息 - * @param x 修正值。 默认在中间,偏移量相对于中间偏移 - * @param y 修正值。 默认在中间,偏移量相对于中间偏移 + * @param x 修正值 默认在中间,偏移量相对于中间偏移 + * @param y 修正值 默认在中间,偏移量相对于中间偏移 * @param alpha 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字 * @return 处理后的图像 */ @@ -507,9 +507,9 @@ public Image pressText(String pressText, Color color, Font font, int x, int y, f /** * 给图片添加图片水印 * - * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件 - * @param x 修正值。 默认在中间,偏移量相对于中间偏移 - * @param y 修正值。 默认在中间,偏移量相对于中间偏移 + * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件 + * @param x 修正值 默认在中间,偏移量相对于中间偏移 + * @param y 修正值 默认在中间,偏移量相对于中间偏移 * @param alpha 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字 * @return this */ @@ -523,8 +523,8 @@ public Image pressImage(java.awt.Image pressImage, int x, int y, float alpha) { /** * 给图片添加图片水印 * - * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件 - * @param rectangle 矩形对象,表示矩形区域的x,y,width,height,x,y从背景图片中心计算 + * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件 + * @param rectangle 矩形对象,表示矩形区域的x,y,width,height,x,y从背景图片中心计算 * @param alpha 透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字 * @return this */ @@ -592,7 +592,7 @@ public java.awt.Image getImg() { * 写出图像 * * @param out 写出到的目标流 - * @return 是否成功写出,如果返回false表示未找到合适的Writer + * @return 是否成功写出, 如果返回false表示未找到合适的Writer * @throws InstrumentException IO异常 */ public boolean write(OutputStream out) throws InstrumentException { @@ -603,7 +603,7 @@ public boolean write(OutputStream out) throws InstrumentException { * 写出图像为PNG格式 * * @param targetImageStream 写出到的目标流 - * @return 是否成功写出,如果返回false表示未找到合适的Writer + * @return 是否成功写出, 如果返回false表示未找到合适的Writer * @throws InstrumentException IO异常 */ public boolean write(ImageOutputStream targetImageStream) throws InstrumentException { @@ -620,7 +620,7 @@ public boolean write(ImageOutputStream targetImageStream) throws InstrumentExcep * 写出图像为目标文件扩展名对应的格式 * * @param targetFile 目标文件 - * @return 是否成功写出,如果返回false表示未找到合适的Writer + * @return 是否成功写出, 如果返回false表示未找到合适的Writer * @throws InstrumentException IO异常 */ public boolean write(File targetFile) throws InstrumentException { @@ -659,7 +659,7 @@ private int getTypeInt() { } /** - * 获取有效的源图片,首先检查上一次处理的结果图片,如无则使用用户传入的源图片 + * 获取有效的源图片,首先检查上一次处理的结果图片,如无则使用用户传入的源图片 * * @return 有效的源图片 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/instance/Instance.java b/bus-core/src/main/java/org/aoju/bus/core/instance/Instance.java index 9b3a93e70e..ab07aeef9f 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/instance/Instance.java +++ b/bus-core/src/main/java/org/aoju/bus/core/instance/Instance.java @@ -28,7 +28,7 @@ /** * 实例化对象的接口 * 1. 使用此类的 class 必须有无参构造器 - * 2. 当前类出于测试阶段。 + * 2. 当前类出于测试阶段 * * @author Kimi Liu * @version 5.2.2 @@ -38,8 +38,8 @@ public interface Instance { /** * 获取对象的单例对象 - * 1. 需要保证对象的线程安全性。 - * 2. 只有在同一个分组返回的对象才会是单例,否则返回 newInstance() + * 1. 需要保证对象的线程安全性 + * 2. 只有在同一个分组返回的对象才会是单例,否则返回 newInstance() * * @param clazz class 类型 * @param groupName 分组名称 @@ -51,7 +51,7 @@ T singleton(final Class clazz, /** * 获取对象的单例对象 - * 1. 需要保证对象的线程安全性。 + * 1. 需要保证对象的线程安全性 * * @param clazz class 类型 * @param 泛型 @@ -61,9 +61,9 @@ T singleton(final Class clazz, /** * 获取每个线程内唯一的实例化对象 - * 注意:可能会内存泄漏的场景。 - * (1) 只要这个线程对象被gc回收,就不会出现内存泄露,但在threadLocal设为null和线程结束这段时间不会被回收的,就发生了我们认为的内存泄露。 - * 最要命的是线程对象不被回收的情况,这就发生了真正意义上的内存泄露。比如使用线程池的时候,线程结束是不会销毁的,会再次使用的。就可能出现内存泄露。 + * 注意:可能会内存泄漏的场景 + * (1) 只要这个线程对象被gc回收,就不会出现内存泄露,但在threadLocal设为null和线程结束这段时间不会被回收的,就发生了我们认为的内存泄露 + * 最要命的是线程对象不被回收的情况,这就发生了真正意义上的内存泄露 比如使用线程池的时候,线程结束是不会销毁的,会再次使用的 就可能出现内存泄露 * 参考资料:https://www.cnblogs.com/onlywujun/p/3524675.html * * @param clazz class 类型 @@ -74,7 +74,7 @@ T singleton(final Class clazz, T threadLocal(final Class clazz); /** - * 多例对象,每次都是全新的创建 + * 多例对象,每次都是全新的创建 * * @param clazz class 类型 * @param 泛型 @@ -84,8 +84,8 @@ T singleton(final Class clazz, /** * 线程安全对象 - * 1. 判断当前类是否拥有 {@link ThreadSafe} 注解, - * 如果有,则直接创建单例对象。如果不是,则创建多例对象。 + * 1. 判断当前类是否拥有 {@link ThreadSafe} 注解, + * 如果有,则直接创建单例对象 如果不是,则创建多例对象 * * @param clazz class 类型 * @param 泛型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/instance/Instances.java b/bus-core/src/main/java/org/aoju/bus/core/instance/Instances.java index a7fee9541f..1cec366b71 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/instance/Instances.java +++ b/bus-core/src/main/java/org/aoju/bus/core/instance/Instances.java @@ -75,7 +75,7 @@ public static T threadLocal(Class clazz) { } /** - * {@link ThreadSafe} 线程安全标示的使用单例,或者使用多例 + * {@link ThreadSafe} 线程安全标示的使用单例,或者使用多例 * * @param clazz class * @param 泛型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/BOMInputStream.java b/bus-core/src/main/java/org/aoju/bus/core/io/BOMInputStream.java index ca3b496c4d..d680aa4e0b 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/BOMInputStream.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/BOMInputStream.java @@ -31,7 +31,7 @@ import java.io.PushbackInputStream; /** - * 读取带BOM头的流内容,getCharset()方法调用后会得到BOM头的编码,且会去除BOM头 + * 读取带BOM头的流内容,getCharset()方法调用后会得到BOM头的编码,且会去除BOM头 *

    *
  • 00 00 FE FF = UTF-32, big-endian
  • *
  • FF FE 00 00 = UTF-32, little-endian
  • diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/FastByteArray.java b/bus-core/src/main/java/org/aoju/bus/core/io/FastByteArray.java index 7a2a76dd3a..9d48dae27e 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/FastByteArray.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/FastByteArray.java @@ -31,13 +31,13 @@ import java.nio.charset.Charset; /** - * 基于快速缓冲FastByteBuffer的OutputStream,随着数据的增长自动扩充缓冲区 + * 基于快速缓冲FastByteBuffer的OutputStream,随着数据的增长自动扩充缓冲区 *

    * 可以通过{@link #toByteArray()}和 {@link #toString()}来获取数据 *

    - * {@link #close()}方法无任何效果,当流被关闭后不会抛出IOException + * {@link #close()}方法无任何效果,当流被关闭后不会抛出IOException *

    - * 这种设计避免重新分配内存块而是分配新增的缓冲区,缓冲区不会被GC,数据也不会被拷贝到其他缓冲区。 + * 这种设计避免重新分配内存块而是分配新增的缓冲区,缓冲区不会被GC,数据也不会被拷贝到其他缓冲区 * * @author Kimi Liu * @version 5.2.2 @@ -75,7 +75,7 @@ public int size() { } /** - * 此方法无任何效果,当流被关闭后不会抛出IOException + * 此方法无任何效果,当流被关闭后不会抛出IOException */ @Override public void close() throws IOException { diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/FastByteBuffer.java b/bus-core/src/main/java/org/aoju/bus/core/io/FastByteBuffer.java index 83fc14cca5..b8c29d340e 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/FastByteBuffer.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/FastByteBuffer.java @@ -25,7 +25,7 @@ /** * 代码移植自blade - * 快速缓冲,将数据存放在缓冲集中,取代以往的单一数组 + * 快速缓冲,将数据存放在缓冲集中,取代以往的单一数组 * * @author Kimi Liu * @version 5.2.2 @@ -71,7 +71,7 @@ public FastByteBuffer(int size) { } /** - * 分配下一个缓冲区,不会小于1024 + * 分配下一个缓冲区,不会小于1024 * * @param newSize 理想缓冲区字节数 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/LineHandler.java b/bus-core/src/main/java/org/aoju/bus/core/io/LineHandler.java index 2a90199e5d..f967acfe9a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/LineHandler.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/LineHandler.java @@ -33,7 +33,7 @@ public interface LineHandler { /** - * 处理一行数据,可以编辑后存入指定地方 + * 处理一行数据,可以编辑后存入指定地方 * * @param line 行 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/NullOutputStream.java b/bus-core/src/main/java/org/aoju/bus/core/io/NullOutputStream.java index 2fb52c30eb..5b385efb70 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/NullOutputStream.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/NullOutputStream.java @@ -27,7 +27,7 @@ import java.io.OutputStream; /** - * 此OutputStream写出数据到/dev/null,既忽略所有数据 + * 此OutputStream写出数据到/dev/null,既忽略所有数据 * 来自 Apache Commons io * * @author Kimi Liu @@ -37,7 +37,7 @@ public class NullOutputStream extends OutputStream { /** - * 什么也不做,写出到/dev/null. + * 什么也不做,写出到/dev/null. * * @param b 写出的数据 * @param off 开始位置 @@ -49,7 +49,7 @@ public void write(byte[] b, int off, int len) { } /** - * 什么也不做,写出到 /dev/null. + * 什么也不做,写出到 /dev/null. * * @param b 写出的数据 */ @@ -59,7 +59,7 @@ public void write(int b) { } /** - * 什么也不做,写出到 /dev/null. + * 什么也不做,写出到 /dev/null. * * @param b 写出的数据 * @throws IOException 不抛出 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileAppender.java b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileAppender.java index de10c6bca8..c3905a80d8 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileAppender.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileAppender.java @@ -33,9 +33,9 @@ /** * 文件追加器 - * 持有一个文件,在内存中积累一定量的数据后统一追加到文件 - * 此类只有在写入文件时打开文件,并在写入结束后关闭之。因此此类不需要关闭 - * 在调用append方法后会缓存于内存,只有超过容量后才会一次性写入文件,因此内存中随时有剩余未写入文件的内容,在最后必须调用flush方法将剩余内容刷入文件 + * 持有一个文件,在内存中积累一定量的数据后统一追加到文件 + * 此类只有在写入文件时打开文件,并在写入结束后关闭之 因此此类不需要关闭 + * 在调用append方法后会缓存于内存,只有超过容量后才会一次性写入文件,因此内存中随时有剩余未写入文件的内容,在最后必须调用flush方法将剩余内容刷入文件 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileCopier.java b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileCopier.java index 498a9e8eec..5d5e57a14f 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileCopier.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileCopier.java @@ -185,13 +185,13 @@ public FileCopier setOnlyCopyFile(boolean isOnlyCopyFile) { * 执行拷贝 * 拷贝规则为: *

    -     * 1、源为文件,目标为已存在目录,则拷贝到目录下,文件名不变
    -     * 2、源为文件,目标为不存在路径,则目标以文件对待(自动创建父级目录)比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名
    -     * 3、源为文件,目标是一个已存在的文件,则当{@link #setOverride(boolean)}设为true时会被覆盖,默认不覆盖
    -     * 4、源为目录,目标为已存在目录,当{@link #setCopyContentIfDir(boolean)}为true时,只拷贝目录中的内容到目标目录中,否则整个源目录连同其目录拷贝到目标目录中
    -     * 5、源为目录,目标为不存在路径,则自动创建目标为新目录,然后按照规则4复制
    -     * 6、源为目录,目标为文件,抛出IO异常
    -     * 7、源路径和目标路径相同时,抛出IO异常
    +     * 1、源为文件,目标为已存在目录,则拷贝到目录下,文件名不变
    +     * 2、源为文件,目标为不存在路径,则目标以文件对待(自动创建父级目录)比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名
    +     * 3、源为文件,目标是一个已存在的文件,则当{@link #setOverride(boolean)}设为true时会被覆盖,默认不覆盖
    +     * 4、源为目录,目标为已存在目录,当{@link #setCopyContentIfDir(boolean)}为true时,只拷贝目录中的内容到目标目录中,否则整个源目录连同其目录拷贝到目标目录中
    +     * 5、源为目录,目标为不存在路径,则自动创建目标为新目录,然后按照规则4复制
    +     * 6、源为目录,目标为文件,抛出IO异常
    +     * 7、源路径和目标路径相同时,抛出IO异常
          * 
    * * @return 拷贝后目标的文件或目录 @@ -213,7 +213,7 @@ public File copy() throws InstrumentException { if (src.isDirectory()) {// 复制目录 if (dest.exists() && false == dest.isDirectory()) { - //源为目录,目标为文件,抛出IO异常 + //源为目录,目标为文件,抛出IO异常 throw new InstrumentException("Src is a directory but dest is a file!"); } final File subDest = isCopyContentIfDir ? dest : FileUtils.mkdir(FileUtils.file(dest, src.getName())); @@ -225,8 +225,8 @@ public File copy() throws InstrumentException { } /** - * 拷贝目录内容,只用于内部,不做任何安全检查 - * 拷贝内容的意思为源目录下的所有文件和目录拷贝到另一个目录下,而不拷贝源目录本身 + * 拷贝目录内容,只用于内部,不做任何安全检查 + * 拷贝内容的意思为源目录下的所有文件和目录拷贝到另一个目录下,而不拷贝源目录本身 * * @param src 源目录 * @param dest 目标目录 @@ -239,7 +239,7 @@ private void internalCopyDirContent(File src, File dest) throws InstrumentExcept } if (false == dest.exists()) { - //目标为不存在路径,创建为目录 + //目标为不存在路径,创建为目录 dest.mkdirs(); } else if (false == dest.isDirectory()) { throw new InstrumentException(StringUtils.format("Src [{}] is a directory but dest [{}] is a file!", src.getPath(), dest.getPath())); @@ -261,15 +261,15 @@ private void internalCopyDirContent(File src, File dest) throws InstrumentExcept } /** - * 拷贝文件,只用于内部,不做任何安全检查 + * 拷贝文件,只用于内部,不做任何安全检查 * 情况如下: *
    -     * 1、如果目标是一个不存在的路径,则目标以文件对待(自动创建父级目录)比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名
    -     * 2、如果目标是一个已存在的目录,则文件拷贝到此目录下,文件名与原文件名一致
    +     * 1、如果目标是一个不存在的路径,则目标以文件对待(自动创建父级目录)比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名
    +     * 2、如果目标是一个已存在的目录,则文件拷贝到此目录下,文件名与原文件名一致
          * 
    * - * @param src 源文件,必须为文件 - * @param dest 目标文件,如果非覆盖模式必须为目录 + * @param src 源文件,必须为文件 + * @param dest 目标文件,如果非覆盖模式必须为目录 * @throws InstrumentException IO异常 */ private void internalCopyFile(File src, File dest) throws InstrumentException { @@ -278,10 +278,10 @@ private void internalCopyFile(File src, File dest) throws InstrumentException { return; } - // 如果已经存在目标文件,切为不覆盖模式,跳过之 + // 如果已经存在目标文件,切为不覆盖模式,跳过之 if (dest.exists()) { if (dest.isDirectory()) { - //目标为目录,目录下创建同名文件 + //目标为目录,目录下创建同名文件 dest = new File(dest, src.getName()); } diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileMode.java b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileMode.java index b66e609d37..7bfe3a7843 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileMode.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileMode.java @@ -24,7 +24,7 @@ package org.aoju.bus.core.io.file; /** - * 文件读写模式,常用于RandomAccessFile + * 文件读写模式,常用于RandomAccessFile * * @author Kimi Liu * @version 5.2.2 @@ -33,19 +33,19 @@ public enum FileMode { /** - * 以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException。 + * 以只读方式打开 调用结果对象的任何 write 方法都将导致抛出 IOException */ r, /** - * 打开以便读取和写入。 + * 打开以便读取和写入 */ rw, /** - * 打开以便读取和写入。相对于 "rw","rws" 还要求对“文件的内容”或“元数据”的每个更新都同步写入到基础存储设备。 + * 打开以便读取和写入 相对于 "rw","rws" 还要求对“文件的内容”或“元数据”的每个更新都同步写入到基础存储设备 */ rws, /** - * 打开以便读取和写入,相对于 "rw","rwd" 还要求对“文件的内容”的每个更新都同步写入到基础存储设备。 + * 打开以便读取和写入,相对于 "rw","rwd" 还要求对“文件的内容”的每个更新都同步写入到基础存储设备 */ rwd diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileReader.java b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileReader.java index 325f8d3b15..da5cdada47 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileReader.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileReader.java @@ -69,7 +69,7 @@ public FileReader(File file, String charset) { /** * 构造 * - * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 + * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 * @param charset 编码 */ public FileReader(String filePath, Charset charset) { @@ -79,7 +79,7 @@ public FileReader(String filePath, Charset charset) { /** * 构造 * - * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 + * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 * @param charset 编码 */ public FileReader(String filePath, String charset) { @@ -100,7 +100,7 @@ public FileReader(File file) { * 构造 * 编码使用 {@link FileWrapper#DEFAULT_CHARSET} * - * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 + * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 */ public FileReader(String filePath) { this(filePath, DEFAULT_CHARSET); diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileWrapper.java b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileWrapper.java index 20bc9b0619..2a34dbd4b8 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileWrapper.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileWrapper.java @@ -30,7 +30,7 @@ import java.nio.charset.StandardCharsets; /** - * 文件包装器,扩展文件对象 + * 文件包装器,扩展文件对象 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileWriter.java b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileWriter.java index 665e9d9a0a..158739e238 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/file/FileWriter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/file/FileWriter.java @@ -69,7 +69,7 @@ public FileWriter(File file, String charset) { /** * 构造 * - * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 + * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 * @param charset 编码 */ public FileWriter(String filePath, Charset charset) { @@ -79,8 +79,8 @@ public FileWriter(String filePath, Charset charset) { /** * 构造 * - * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 - * @param charset 编码,使用 {@link CharsetUtils#charset(String)} + * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 + * @param charset 编码,使用 {@link CharsetUtils#charset(String)} */ public FileWriter(String filePath, String charset) { this(FileUtils.file(filePath), CharsetUtils.charset(charset)); @@ -100,7 +100,7 @@ public FileWriter(File file) { * 构造 * 编码使用 {@link FileWrapper#DEFAULT_CHARSET} * - * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 + * @param filePath 文件路径,相对路径会被转换为相对于ClassPath的路径 */ public FileWriter(String filePath) { this(filePath, DEFAULT_CHARSET); @@ -150,7 +150,7 @@ public File write(String content, boolean isAppend) throws InstrumentException { } /** - * 将String写入文件,覆盖模式 + * 将String写入文件,覆盖模式 * * @param content 写入的内容 * @return 目标文件 @@ -161,7 +161,7 @@ public File write(String content) throws InstrumentException { } /** - * 将String写入文件,追加模式 + * 将String写入文件,追加模式 * * @param content 写入的内容 * @return 写入的文件 @@ -172,7 +172,7 @@ public File append(String content) throws InstrumentException { } /** - * 将列表写入文件,覆盖模式 + * 将列表写入文件,覆盖模式 * * @param 集合元素类型 * @param list 列表 @@ -184,7 +184,7 @@ public File writeLines(Collection list) throws InstrumentException { } /** - * 将列表写入文件,追加模式 + * 将列表写入文件,追加模式 * * @param 集合元素类型 * @param list 列表 @@ -233,10 +233,10 @@ public File writeLines(Collection list, LineSeparator lineSeparator, bool } /** - * 将Map写入文件,每个键值对为一行,一行中键与值之间使用kvSeparator分隔 + * 将Map写入文件,每个键值对为一行,一行中键与值之间使用kvSeparator分隔 * * @param map Map - * @param kvSeparator 键和值之间的分隔符,如果传入null使用默认分隔符" = " + * @param kvSeparator 键和值之间的分隔符,如果传入null使用默认分隔符" = " * @param isAppend 是否追加 * @return 目标文件 * @throws InstrumentException IO异常 @@ -246,11 +246,11 @@ public File writeMap(Map map, String kvSeparator, boolean isAppend) throws } /** - * 将Map写入文件,每个键值对为一行,一行中键与值之间使用kvSeparator分隔 + * 将Map写入文件,每个键值对为一行,一行中键与值之间使用kvSeparator分隔 * * @param map Map * @param lineSeparator 换行符枚举(Windows、Mac或Linux换行符) - * @param kvSeparator 键和值之间的分隔符,如果传入null使用默认分隔符" = " + * @param kvSeparator 键和值之间的分隔符,如果传入null使用默认分隔符" = " * @param isAppend 是否追加 * @return 目标文件 * @throws InstrumentException IO异常 @@ -325,7 +325,7 @@ public File write(byte[] data, int off, int len, boolean isAppend) throws Instru * 将流的内容写入文件 * 此方法不会关闭输入流 * - * @param in 输入流,不关闭 + * @param in 输入流,不关闭 * @return dest * @throws InstrumentException IO异常 */ @@ -372,7 +372,7 @@ public BufferedWriter getWriter(boolean isAppend) throws InstrumentException { } /** - * 获得一个打印写入对象,可以有print + * 获得一个打印写入对象,可以有print * * @param isAppend 是否追加 * @return 打印对象 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/file/LineReadWatcher.java b/bus-core/src/main/java/org/aoju/bus/core/io/file/LineReadWatcher.java index 71f7445d17..f5a529730c 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/file/LineReadWatcher.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/file/LineReadWatcher.java @@ -78,7 +78,7 @@ public void onModify(WatchEvent event, Path currentPath) { // 内容长度不变时忽略此次事件 return; } else if (currentLength < position) { - // 如果内容变短,说明文件做了删改,回到内容末尾 + // 如果内容变短,说明文件做了删改,回到内容末尾 randomAccessFile.seek(currentLength); return; } diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/resource/ClassPathResource.java b/bus-core/src/main/java/org/aoju/bus/core/io/resource/ClassPathResource.java index a0b53ae86c..bd81280928 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/resource/ClassPathResource.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/resource/ClassPathResource.java @@ -30,8 +30,8 @@ /** * ClassPath单一资源访问类 - * 传入路径path必须为相对路径,如果传入绝对路径,Linux路径会去掉开头的“/”,而Windows路径会直接报错。 - * 传入的path所指向的资源必须存在,否则报错 + * 传入路径path必须为相对路径,如果传入绝对路径,Linux路径会去掉开头的“/”,而Windows路径会直接报错 + * 传入的path所指向的资源必须存在,否则报错 * * @author Kimi Liu * @version 5.2.2 @@ -103,7 +103,7 @@ public final String getPath() { /** * 获得绝对路径Path - * 对于不存在的资源,返回拼接后的绝对路径 + * 对于不存在的资源,返回拼接后的绝对路径 * * @return 绝对路径path */ @@ -111,7 +111,7 @@ public final String getAbsolutePath() { if (FileUtils.isAbsolutePath(this.path)) { return this.path; } - // url在初始化的时候已经断言,此处始终不为null + // url在初始化的时候已经断言,此处始终不为null return FileUtils.normalize(UriUtils.getDecodedPath(this.url)); } diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/resource/FileResource.java b/bus-core/src/main/java/org/aoju/bus/core/io/resource/FileResource.java index ee31f283bc..27c1748f9b 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/resource/FileResource.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/resource/FileResource.java @@ -51,7 +51,7 @@ public FileResource(File file) { * 构造 * * @param file 文件 - * @param fileName 文件名,如果为null获取文件本身的文件名 + * @param fileName 文件名,如果为null获取文件本身的文件名 */ public FileResource(File file, String fileName) { super(UriUtils.getURL(file), StringUtils.isBlank(fileName) ? file.getName() : fileName); @@ -60,7 +60,7 @@ public FileResource(File file, String fileName) { /** * 构造 * - * @param path 文件绝对路径或相对ClassPath路径,但是这个路径不能指向一个jar包中的文件 + * @param path 文件绝对路径或相对ClassPath路径,但是这个路径不能指向一个jar包中的文件 */ public FileResource(String path) { this(FileUtils.file(path)); diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/resource/MultiFileResource.java b/bus-core/src/main/java/org/aoju/bus/core/io/resource/MultiFileResource.java index 5a0d19f599..b1dd06b00b 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/resource/MultiFileResource.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/resource/MultiFileResource.java @@ -28,7 +28,7 @@ /** * 多文件组合资源 - * 此资源为一个利用游标自循环资源,只有调用{@link #next()} 方法才会获取下一个资源,使用完毕后调用{@link #reset()}方法重置游标 + * 此资源为一个利用游标自循环资源,只有调用{@link #next()} 方法才会获取下一个资源,使用完毕后调用{@link #reset()}方法重置游标 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/resource/MultiResource.java b/bus-core/src/main/java/org/aoju/bus/core/io/resource/MultiResource.java index d703932363..10906c9fcc 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/resource/MultiResource.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/resource/MultiResource.java @@ -37,7 +37,7 @@ /** * 多资源组合资源 - * 此资源为一个利用游标自循环资源,只有调用{@link #next()} 方法才会获取下一个资源,使用完毕后调用{@link #reset()}方法重置游标 + * 此资源为一个利用游标自循环资源,只有调用{@link #next()} 方法才会获取下一个资源,使用完毕后调用{@link #reset()}方法重置游标 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/resource/Resource.java b/bus-core/src/main/java/org/aoju/bus/core/io/resource/Resource.java index 5815d962e8..000350fd9b 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/resource/Resource.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/resource/Resource.java @@ -42,7 +42,7 @@ public interface Resource { /** - * 获取资源名,例如文件资源的资源名为文件名 + * 获取资源名,例如文件资源的资源名为文件名 * * @return 资源名 */ @@ -71,7 +71,7 @@ public interface Resource { BufferedReader getReader(Charset charset); /** - * 读取资源内容,读取完毕后会关闭流 + * 读取资源内容,读取完毕后会关闭流 * 关闭流并不影响下一次读取 * * @param charset 编码 @@ -81,7 +81,7 @@ public interface Resource { String readStr(Charset charset) throws InstrumentException; /** - * 读取资源内容,读取完毕后会关闭流 + * 读取资源内容,读取完毕后会关闭流 * 关闭流并不影响下一次读取 * * @return 读取资源内容 @@ -90,7 +90,7 @@ public interface Resource { String readUtf8Str() throws InstrumentException; /** - * 读取资源内容,读取完毕后会关闭流 + * 读取资源内容,读取完毕后会关闭流 * 关闭流并不影响下一次读取 * * @return 读取资源内容 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/resource/StringResource.java b/bus-core/src/main/java/org/aoju/bus/core/io/resource/StringResource.java index 414b3eb023..68d8ed5ef4 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/resource/StringResource.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/resource/StringResource.java @@ -34,7 +34,7 @@ import java.nio.charset.Charset; /** - * 字符串资源,字符串做为资源 + * 字符串资源,字符串做为资源 * * @author Kimi Liu * @version 5.2.2 @@ -47,7 +47,7 @@ public class StringResource implements Resource { private Charset charset; /** - * 构造,使用UTF8编码 + * 构造,使用UTF8编码 * * @param data 资源数据 */ @@ -56,7 +56,7 @@ public StringResource(String data) { } /** - * 构造,使用UTF8编码 + * 构造,使用UTF8编码 * * @param data 资源数据 * @param name 资源名称 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/resource/UriResource.java b/bus-core/src/main/java/org/aoju/bus/core/io/resource/UriResource.java index 62edf5d960..c43afca84a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/resource/UriResource.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/resource/UriResource.java @@ -59,7 +59,7 @@ public UriResource(URL url) { /** * 构造 * - * @param url URL,允许为空 + * @param url URL,允许为空 * @param name 资源名称 */ public UriResource(URL url, String name) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/Awaits.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/Awaits.java index e5150bc4f4..a55abc42fb 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/Awaits.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/Awaits.java @@ -30,8 +30,8 @@ import java.util.concurrent.TimeUnit; /** - * 此超时使用后台线程在超时发生时精确地执行操作。用它来 - * 在本地不支持超时的地方实现超时,例如对阻塞的套接字操作. + * 此超时使用后台线程在超时发生时精确地执行操作 用它来 + * 在本地不支持超时的地方实现超时,例如对阻塞的套接字操作. * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferPool.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferPool.java index 68cf8bae4b..a45ceead8a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferPool.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferPool.java @@ -69,7 +69,7 @@ public void run() { * @return 缓存页对象 */ public BufferPage allocateBufferPage() { - //轮训游标,均衡分配内存页 + //轮训游标,均衡分配内存页 return bufferPageList[cursor.getAndIncrement() % bufferPageList.length]; } } diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferSink.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferSink.java index 2a22b36e65..ebc47dc2a9 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferSink.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferSink.java @@ -29,7 +29,7 @@ import java.nio.charset.Charset; /** - * 一种接收器,它在内部保存缓冲区, + * 一种接收器,它在内部保存缓冲区, * 以便调用者可以进行小的写操作没有性能损失 * * @author Kimi Liu diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferSource.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferSource.java index f081606202..e50b8330b5 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferSource.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/BufferSource.java @@ -29,8 +29,8 @@ import java.nio.charset.Charset; /** - * 内部保存一个缓冲区,以便调用者可以在没有性能的情况下进行少量读取 - * 它还允许客户端提前读取,在消费之前进行必要的缓冲输入 + * 内部保存一个缓冲区,以便调用者可以在没有性能的情况下进行少量读取 + * 它还允许客户端提前读取,在消费之前进行必要的缓冲输入 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/ByteBuffer.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/ByteBuffer.java index c24d314144..f1db69147f 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/ByteBuffer.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/ByteBuffer.java @@ -31,9 +31,9 @@ import java.util.Arrays; /** - * 由字节数组段组成的不可变字节字符串。该类的存在是为了实现 - * 缓冲区的有效快照。它被实现为一个段数组,加上一个目录 - * 两个半部分,描述段如何组成这个字节字符串。 + * 由字节数组段组成的不可变字节字符串 该类的存在是为了实现 + * 缓冲区的有效快照 它被实现为一个段数组,加上一个目录 + * 两个半部分,描述段如何组成这个字节字符串 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/DeflaterSink.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/DeflaterSink.java index 2bc51efbc7..fd58e564b2 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/DeflaterSink.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/DeflaterSink.java @@ -31,7 +31,7 @@ /** *

    Sync flush

    - * 这种流体的强冲刷可能导致压缩降低。每一个 + * 这种流体的强冲刷可能导致压缩降低 每一个 * 调用{@link #flush}立即压缩所有当前缓存的数据; * 这种早期压缩可能不如执行的压缩有效 * diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/FileSystem.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/FileSystem.java index bec0206f01..bf8480f4e2 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/FileSystem.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/FileSystem.java @@ -30,10 +30,10 @@ import java.io.IOException; /** - * 访问分层数据存储上的读写文件。大多数调用者应该使用{@link #SYSTEM} - * 实现,它使用主机的本地文件系统。备用 + * 访问分层数据存储上的读写文件 大多数调用者应该使用{@link #SYSTEM} + * 实现,它使用主机的本地文件系统 备用 * 实现可用于注入错误(用于测试)或转换存储的数据(用于添加) - * 例如加密)。 + * 例如加密) * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/GzipSink.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/GzipSink.java index 16ee3f2049..1987a6e6fb 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/GzipSink.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/GzipSink.java @@ -32,9 +32,9 @@ import static java.util.zip.Deflater.DEFAULT_COMPRESSION; /** - * 这相当于使用{@link Deflater}同步刷新选项。 - * 该类不提供任何部分刷新机制。为获得最佳性能, - * 只在应用程序行为需要时调用{@link #flush}。 + * 这相当于使用{@link Deflater}同步刷新选项 + * 该类不提供任何部分刷新机制 为获得最佳性能, + * 只在应用程序行为需要时调用{@link #flush} * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/HashSink.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/HashSink.java index 81254a6456..14898c3e50 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/HashSink.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/HashSink.java @@ -33,9 +33,9 @@ import java.security.NoSuchAlgorithmException; /** - * 一个接收器,计算它接受的全部字节流的哈希值。若要使用,请创建 - * 使用您首选的哈希算法实例。将所有数据写入接收器,然后调用 - * {@link #hash()}来计算最终的哈希值。 + * 一个接收器,计算它接受的全部字节流的哈希值 若要使用,请创建 + * 使用您首选的哈希算法实例 将所有数据写入接收器,然后调用 + * {@link #hash()}来计算最终的哈希值 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/HashSource.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/HashSource.java index ad6e999b8c..d6d465fdb3 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/HashSource.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/HashSource.java @@ -31,8 +31,8 @@ import java.security.NoSuchAlgorithmException; /** - * 计算其提供的全部字节流的散列的源。若要使用,请创建 - * 使用您首选的哈希算法实例。通过读取源文件的所有字节来耗尽源文件 + * 计算其提供的全部字节流的散列的源 若要使用,请创建 + * 使用您首选的哈希算法实例 通过读取源文件的所有字节来耗尽源文件 * 然后调用{@link #hash()}来计算最终的哈希值 * * @author Kimi Liu diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/LifeCycle.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/LifeCycle.java index 031066fc69..1c2fbf0876 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/LifeCycle.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/LifeCycle.java @@ -24,8 +24,8 @@ package org.aoju.bus.core.io.segment; /** - * 这是避免GC搅动和零填充所必需的。 - * 这个池是一个线程安全的静态单例。 + * 这是避免GC搅动和零填充所必需的 + * 这个池是一个线程安全的静态单例 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/PeekSource.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/PeekSource.java index adccd5927d..c8c41a16d3 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/PeekSource.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/PeekSource.java @@ -26,12 +26,12 @@ import java.io.IOException; /** - * 一个{@link Source},它可以窥视上游的{@link BufferSource}并允许读取和 - * 展开缓冲数据而不使用它。这是通过请求额外的数据吗 - * 如果需要,则复制上游源文件,如果需要,则从上游源文件的内部缓冲区复制 + * 一个{@link Source},它可以窥视上游的{@link BufferSource}并允许读取和 + * 展开缓冲数据而不使用它 这是通过请求额外的数据吗 + * 如果需要,则复制上游源文件,如果需要,则从上游源文件的内部缓冲区复制 * 此源还维护其上游缓冲区的起始位置的快照 - * 每次读取时验证。如果从上游缓冲区读取,则此源将变为 - * 无效,在以后的读取中抛出{@link IllegalStateException}。 + * 每次读取时验证 如果从上游缓冲区读取,则此源将变为 + * 无效,在以后的读取中抛出{@link IllegalStateException} * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/Segment.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/Segment.java index 2a4ba6ef67..0c755cbb54 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/Segment.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/Segment.java @@ -25,14 +25,14 @@ /** * 缓冲区的一段 - * 缓冲区中的每个段都是一个循环链表节点,它引用以下内容和 - * 缓冲区中前面的段。 - * 池中的每个段都是一个单链列表节点,引用池。 - * 段的底层字节数组可以在缓冲区和字节字符串之间共享。当一个 - * 段不能回收,也不能改变它的字节数据。 - * 唯一的例外是允许所有者段附加到段中,写入数据 - * {@code limit}及以上。每个字节数组都有一个单独的拥有段。的立场, - * 限制、prev和next引用不共享。 + * 缓冲区中的每个段都是一个循环链表节点,它引用以下内容和 + * 缓冲区中前面的段 + * 池中的每个段都是一个单链列表节点,引用池 + * 段的底层字节数组可以在缓冲区和字节字符串之间共享 当一个 + * 段不能回收,也不能改变它的字节数据 + * 唯一的例外是允许所有者段附加到段中,写入数据 + * {@code limit}及以上 每个字节数组都有一个单独的拥有段 的立场, + * 限制、prev和next引用不共享 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/Sink.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/Sink.java index e9991e0d52..c4abf21c09 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/Sink.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/Sink.java @@ -28,10 +28,10 @@ import java.io.IOException; /** - * 接收一个字节流。使用这个接口可以在任何地方编写数据 - * 需要:到网络、存储器或内存中的缓冲区。水槽可以分层 - * 转换接收到的数据,如压缩、加密、节流或添加 - * 协议框架。 + * 接收一个字节流 使用这个接口可以在任何地方编写数据 + * 需要:到网络、存储器或内存中的缓冲区 水槽可以分层 + * 转换接收到的数据,如压缩、加密、节流或添加 + * 协议框架 * * *

    Interop with OutputStream

    diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/Source.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/Source.java index bc6ca1a5fb..dd4e3a09d4 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/Source.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/Source.java @@ -27,10 +27,10 @@ import java.io.IOException; /** - * 提供一个字节流。使用此接口从任何地方读取数据 - * 它的位置:来自网络、存储或内存中的缓冲区。来源可能 - * 分层以转换提供的数据,例如解压、解密或 - * 移除协议框架。 + * 提供一个字节流 使用此接口从任何地方读取数据 + * 它的位置:来自网络、存储或内存中的缓冲区 来源可能 + * 分层以转换提供的数据,例如解压、解密或 + * 移除协议框架 * *

    Interop with InputStream

    * {@link BufferSource#inputStream} to adapt a source to an {@code diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/segment/Timeout.java b/bus-core/src/main/java/org/aoju/bus/core/io/segment/Timeout.java index 618171473a..1f39691c51 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/segment/Timeout.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/segment/Timeout.java @@ -28,11 +28,11 @@ import java.util.concurrent.TimeUnit; /** - * 在放弃一项任务之前要花多少时间的策略。当一个任务 - * 超时时,它处于未指定的状态,应该被放弃。 - * 例如,如果从源读取超时,则应关闭该源并 - * 稍后应重试读取。如果向接收器写入超时,也是一样 - * 适用规则:关闭洗涤槽,稍后重试。 + * 在放弃一项任务之前要花多少时间的策略 当一个任务 + * 超时时,它处于未指定的状态,应该被放弃 + * 例如,如果从源读取超时,则应关闭该源并 + * 稍后应重试读取 如果向接收器写入超时,也是一样 + * 适用规则:关闭洗涤槽,稍后重试 * *

    Timeouts and Deadlines

    * This class offers two complementary controls to define a timeout policy. diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/watchers/DelayWatcher.java b/bus-core/src/main/java/org/aoju/bus/core/io/watchers/DelayWatcher.java index 706d1d7dd4..15621c7aeb 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/watchers/DelayWatcher.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/watchers/DelayWatcher.java @@ -35,9 +35,9 @@ /** * 延迟观察者 - * 使用此观察者通过定义一定的延迟时间,解决{@link WatchService}多个modify的问题 - * 在监听目录或文件时,如果这个文件有修改操作,会多次触发modify方法。 - * 此类通过维护一个Set将短时间内相同文件多次modify的事件合并处理触发,从而避免以上问题。 + * 使用此观察者通过定义一定的延迟时间,解决{@link WatchService}多个modify的问题 + * 在监听目录或文件时,如果这个文件有修改操作,会多次触发modify方法 + * 此类通过维护一个Set将短时间内相同文件多次modify的事件合并处理触发,从而避免以上问题 * * @author Kimi Liu * @version 5.2.2 @@ -46,7 +46,7 @@ public class DelayWatcher implements Watcher { /** - * Path集合。此集合用于去重在指定delay内多次触发的文件Path + * Path集合 此集合用于去重在指定delay内多次触发的文件Path */ private final Set eventSet = new HashSet<>(); /** @@ -54,15 +54,15 @@ public class DelayWatcher implements Watcher { */ private final Watcher watcher; /** - * 延迟,单位毫秒 + * 延迟,单位毫秒 */ private final long delay; /** * 构造 * - * @param watcher 实际处理触发事件的监视器{@link Watcher},不可以是{@link DelayWatcher} - * @param delay 延迟时间,单位毫秒 + * @param watcher 实际处理触发事件的监视器{@link Watcher},不可以是{@link DelayWatcher} + * @param delay 延迟时间,单位毫秒 */ public DelayWatcher(Watcher watcher, long delay) { Assert.notNull(watcher); @@ -106,11 +106,11 @@ public void onOverflow(WatchEvent event, Path currentPath) { private void onDelayModify(WatchEvent event, Path currentPath) { Path eventPath = Paths.get(currentPath.toString(), event.context().toString()); if (eventSet.contains(eventPath)) { - //此事件已经被触发过,后续事件忽略,等待统一处理。 + //此事件已经被触发过,后续事件忽略,等待统一处理 return; } - //事件第一次触发,此时标记事件,并启动处理线程延迟处理,处理结束后会删除标记 + //事件第一次触发,此时标记事件,并启动处理线程延迟处理,处理结束后会删除标记 eventSet.add(eventPath); startHandleModifyThread(event, currentPath); } diff --git a/bus-core/src/main/java/org/aoju/bus/core/io/watchers/WatchMonitor.java b/bus-core/src/main/java/org/aoju/bus/core/io/watchers/WatchMonitor.java index a4ab597ee4..13f4478ba2 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/io/watchers/WatchMonitor.java +++ b/bus-core/src/main/java/org/aoju/bus/core/io/watchers/WatchMonitor.java @@ -41,8 +41,8 @@ /** * 路径监听器 * 监听器可监听目录或文件 - * 如果监听的Path不存在,则递归创建空目录然后监听此空目录 - * 递归监听目录时,并不会监听新创建的目录 + * 如果监听的Path不存在,则递归创建空目录然后监听此空目录 + * 递归监听目录时,并不会监听新创建的目录 * * @author Kimi Liu * @version 5.2.2 @@ -77,15 +77,15 @@ public class WatchMonitor extends Thread implements Closeable { }; /** - * 监听路径,必须为目录 + * 监听路径,必须为目录 */ private Path path; /** - * 递归目录的最大深度,当小于1时不递归下层目录 + * 递归目录的最大深度,当小于1时不递归下层目录 */ private int maxDepth; /** - * 监听的文件,对于单文件监听不为空 + * 监听的文件,对于单文件监听不为空 */ private Path filePath; @@ -153,7 +153,7 @@ public WatchMonitor(Path path, WatchEvent.Kind... events) { *
* * @param path 字符串路径 - * @param maxDepth 递归目录的最大深度,当小于2时不递归下层目录 + * @param maxDepth 递归目录的最大深度,当小于2时不递归下层目录 * @param events 监听事件列表 */ public WatchMonitor(Path path, int maxDepth, WatchEvent.Kind... events) { @@ -179,7 +179,7 @@ public static WatchMonitor create(URL url, WatchEvent.Kind... events) { * * @param url URL * @param events 监听的事件列表 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @return 监听对象 */ public static WatchMonitor create(URL url, int maxDepth, WatchEvent.Kind... events) { @@ -202,7 +202,7 @@ public static WatchMonitor create(URI uri, WatchEvent.Kind... events) { * * @param uri URI * @param events 监听的事件列表 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @return 监听对象 */ public static WatchMonitor create(URI uri, int maxDepth, WatchEvent.Kind... events) { @@ -225,7 +225,7 @@ public static WatchMonitor create(File file, WatchEvent.Kind... events) { * * @param file 文件 * @param events 监听的事件列表 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @return 监听对象 */ public static WatchMonitor create(File file, int maxDepth, WatchEvent.Kind... events) { @@ -248,7 +248,7 @@ public static WatchMonitor create(String path, WatchEvent.Kind... events) { * * @param path 路径 * @param events 监听的事件列表 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @return 监听对象 */ public static WatchMonitor create(String path, int maxDepth, WatchEvent.Kind... events) { @@ -271,7 +271,7 @@ public static WatchMonitor create(Path path, WatchEvent.Kind... events) { * * @param path 路径 * @param events 监听事件列表 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @return 监听对象 */ public static WatchMonitor create(Path path, int maxDepth, WatchEvent.Kind... events) { @@ -279,7 +279,7 @@ public static WatchMonitor create(Path path, int maxDepth, WatchEvent.Kind... } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param uri URI * @param watcher {@link Watcher} @@ -290,7 +290,7 @@ public static WatchMonitor createAll(URI uri, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param url URL * @param watcher {@link Watcher} @@ -305,7 +305,7 @@ public static WatchMonitor createAll(URL url, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param file 被监听文件 * @param watcher {@link Watcher} @@ -316,7 +316,7 @@ public static WatchMonitor createAll(File file, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param path 路径 * @param watcher {@link Watcher} @@ -327,7 +327,7 @@ public static WatchMonitor createAll(String path, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param path 路径 * @param watcher {@link Watcher} @@ -343,11 +343,11 @@ public static WatchMonitor createAll(Path path, Watcher watcher) { * 初始化 * 初始化包括: *
-     * 1、解析传入的路径,判断其为目录还是文件
+     * 1、解析传入的路径,判断其为目录还是文件
      * 2、创建{@link WatchService} 对象
      * 
* - * @throws InstrumentException 监听异常,IO异常时抛出此异常 + * @throws InstrumentException 监听异常,IO异常时抛出此异常 */ public void init() throws InstrumentException { //获取目录或文件路径 @@ -355,7 +355,7 @@ public void init() throws InstrumentException { final Path lastPathEle = FileUtils.getLastPathEle(this.path); if (null != lastPathEle) { final String lastPathEleStr = lastPathEle.toString(); - //带有点表示有扩展名,按照未创建的文件对待。Linux下.d的为目录,排除之 + //带有点表示有扩展名,按照未创建的文件对待 Linux下.d的为目录,排除之 if (StringUtils.contains(lastPathEleStr, Symbol.C_DOT) && false == StringUtils.endWithIgnoreCase(lastPathEleStr, ".d")) { this.filePath = this.path; this.path = this.filePath.getParent(); @@ -400,17 +400,17 @@ public void run() { } /** - * 开始监听事件,阻塞当前进程 + * 开始监听事件,阻塞当前进程 */ public void watch() { watch(this.watcher); } /** - * 开始监听事件,阻塞当前进程 + * 开始监听事件,阻塞当前进程 * * @param watcher 监听 - * @throws InstrumentException 监听异常,如果监听关闭抛出此异常 + * @throws InstrumentException 监听异常,如果监听关闭抛出此异常 */ public void watch(Watcher watcher) throws InstrumentException { if (isClosed) { @@ -449,8 +449,8 @@ public void watch(Watcher watcher) throws InstrumentException { } /** - * 当监听目录时,监听目录的最大深度 - * 当设置值为1(或小于1)时,表示不递归监听子目录 + * 当监听目录时,监听目录的最大深度 + * 当设置值为1(或小于1)时,表示不递归监听子目录 * 例如设置: *
      * maxDepth <= 1 表示只监听当前目录
@@ -458,7 +458,7 @@ public void watch(Watcher watcher) throws InstrumentException {
      * maxDepth = 3 表示监听当前目录以及下层
      * 
* - * @param maxDepth 最大深度,当设置值为1(或小于1)时,表示不递归监听子目录,监听所有子目录请传{@link Integer#MAX_VALUE} + * @param maxDepth 最大深度,当设置值为1(或小于1)时,表示不递归监听子目录,监听所有子目录请传{@link Integer#MAX_VALUE} * @return this */ public WatchMonitor setMaxDepth(int maxDepth) { @@ -506,7 +506,7 @@ public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOEx } } catch (IOException e) { if (e instanceof AccessDeniedException) { - //对于禁止访问的目录,跳过监听 + //对于禁止访问的目录,跳过监听 return; } throw new InstrumentException(e); diff --git a/bus-core/src/main/java/org/aoju/bus/core/key/HashID.java b/bus-core/src/main/java/org/aoju/bus/core/key/HashID.java index 9730aea18a..051902096c 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/key/HashID.java +++ b/bus-core/src/main/java/org/aoju/bus/core/key/HashID.java @@ -29,8 +29,8 @@ import java.util.regex.Pattern; /** - * Hashids用于从数字(如YouTube和Bitly)生成短散列, - * 数据库id,将它们用作忘记密码散列、邀请码、存储碎片号 + * Hashids用于从数字(如YouTube和Bitly)生成短散列, + * 数据库id,将它们用作忘记密码散列、邀请码、存储碎片号 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/key/LongID.java b/bus-core/src/main/java/org/aoju/bus/core/key/LongID.java index a0e8d5fe6c..d8610e89f0 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/key/LongID.java +++ b/bus-core/src/main/java/org/aoju/bus/core/key/LongID.java @@ -26,8 +26,8 @@ import java.util.Date; /** - * Long类型ID生成器,固定为19位长度 - * 根据当前毫秒数和可选的服务器/实例ID生成唯一的数字ID。 + * Long类型ID生成器,固定为19位长度 + * 根据当前毫秒数和可选的服务器/实例ID生成唯一的数字ID * 适合用作分布式应用程序中的数据库主键 *

* 示例: @@ -40,7 +40,7 @@ * * *

- * 有了生成的id,您就可以用它检索信息,无论是否有实例 + * 有了生成的id,您就可以用它检索信息,无论是否有实例 *

    *
  • LongId.getDate(id) - 从ID中提取时间戳 *
  • LongId.getServerId(id) - 从ID中提取服务器ID @@ -53,7 +53,7 @@ public class LongID { /** - * 对于ID的每个组件,我们使用了多少个十六进制数字 + * 对于ID的每个组件,我们使用了多少个十六进制数字 */ private static final int COUNTER_HEX_DIGITS = 2; private static final int SERVER_HEX_DIGITS = 3; @@ -65,12 +65,12 @@ public class LongID { */ private static final String ZEROES = "00000000000"; /** - * 可选的服务器ID为0。可以通过创建 new LongID(serverId)来设置 + * 可选的服务器ID为0 可以通过创建 new LongID(serverId)来设置 */ private final String serverIdAsHex; /** - * 状态变量,用于在同一毫秒内调用时确保惟一的id - * 跨实例共享,因此即使您使用相同的服务器创建两个对象,id仍然是惟一的 + * 状态变量,用于在同一毫秒内调用时确保惟一的id + * 跨实例共享,因此即使您使用相同的服务器创建两个对象,id仍然是惟一的 */ private long millisPrevious = 0; private long counterWithinThisMilli = 0; @@ -83,7 +83,7 @@ public LongID() { } /** - * 为特定的服务器/应用程序实例创建一个新实例。确保每个实例生成一组惟一的id + * 为特定的服务器/应用程序实例创建一个新实例 确保每个实例生成一组惟一的id * * @param serverId 服务器ID */ @@ -91,19 +91,19 @@ public LongID(long serverId) { if (serverId > SERVER_MAX || serverId < 0) throw new IllegalArgumentException("Server Id must be in the range 0-" + SERVER_MAX); - // 将serverId转换为十六进制,根据需要填充0。. + // 将serverId转换为十六进制,根据需要填充0 . String asHex = Long.toHexString(serverId); serverIdAsHex = ZEROES.substring(0, SERVER_HEX_DIGITS - asHex.length()) + asHex; } /** - * 获取生成LongId的日期/时间。 + * 获取生成LongId的日期/时间 * * @param longId 用这个类生成的LongId的数字id - * @return Date对象,表示生成LongId的时间. + * @return Date对象, 表示生成LongId的时间. */ public static Date getDate(long longId) { - // 转换为十六进制,然后去掉最后6个十六进制数字。其余的将是时间戳 + // 转换为十六进制,然后去掉最后6个十六进制数字 其余的将是时间戳 String hexInput = Long.toHexString(longId); if (hexInput.length() < COUNTER_HEX_DIGITS + SERVER_HEX_DIGITS + 1) throw new IllegalArgumentException("Input is too short to be a LongId"); @@ -117,7 +117,7 @@ public static Date getDate(long longId) { * @return 生成LongId的服务器/实例的数字ID */ public static long getServerId(long longId) { - // 将数字转换为十六进制。以最后几个十六进制数字为例。把它们转换成数字。这是服务器Id. + // 将数字转换为十六进制 以最后几个十六进制数字为例 把它们转换成数字 这是服务器Id. String hexInput = Long.toHexString(longId); if (hexInput.length() < COUNTER_HEX_DIGITS + SERVER_HEX_DIGITS + 1) throw new IllegalArgumentException("Input is too short to be a LongId"); @@ -125,13 +125,13 @@ public static long getServerId(long longId) { } /** - * 从一个长longid获取相同毫秒的计数器。除了调试之外没有什么用处. + * 从一个长longid获取相同毫秒的计数器 除了调试之外没有什么用处. * * @param longId 用这个类生成的LongId的数字id * @return 数字计数器 */ public static long getCounter(long longId) { - // 转换为十六进制,删除服务器数字,然后查看剩下的最后几个十六进制数字 + // 转换为十六进制,删除服务器数字,然后查看剩下的最后几个十六进制数字 String hexInput = Long.toHexString(longId); if (hexInput.length() < COUNTER_HEX_DIGITS + SERVER_HEX_DIGITS + 1) throw new IllegalArgumentException("Input is too short to be a LongId"); @@ -139,9 +139,9 @@ public static long getCounter(long longId) { } /** - * 生成一个新的ID. Synchronized,这样每个线程将等待前一个线程完成,允许我们 - * 当两个线程在同一毫秒内碰撞时,维护状态并保证唯一的ID - * 如果我们在一毫秒内达到计数器限制,我们将睡眠一毫秒并重新开始 + * 生成一个新的ID. Synchronized,这样每个线程将等待前一个线程完成,允许我们 + * 当两个线程在同一毫秒内碰撞时,维护状态并保证唯一的ID + * 如果我们在一毫秒内达到计数器限制,我们将睡眠一毫秒并重新开始 * * @return ID 适合用作数据库键的唯一标识 */ @@ -149,23 +149,23 @@ public synchronized long id() { // 当前时间戳 long millisCurrent = System.currentTimeMillis(); - // 如果不在相同的毫秒中,则重置静态变量(safe since Synchronized) + // 如果不在相同的毫秒中,则重置静态变量(safe since Synchronized) if (millisPrevious != millisCurrent) { millisPrevious = millisCurrent; counterWithinThisMilli = 0; } - // 如果计数器溢出,休眠1ms,然后递归调用 + // 如果计数器溢出,休眠1ms,然后递归调用 else if (counterWithinThisMilli >= COUNTER_MAX) { try { Thread.sleep(1); } - // sleep抛出一个已检查的异常,因此我们必须在这里处理它,否则就把它踢到楼上,迫使调用者处理它 + // sleep抛出一个已检查的异常,因此我们必须在这里处理它,否则就把它踢到楼上,迫使调用者处理它 catch (InterruptedException e) { throw new RuntimeException(e); } return id(); } - //如果在相同的毫秒中,增量计数器 + //如果在相同的毫秒中,增量计数器 else counterWithinThisMilli++; millisPrevious = millisCurrent; @@ -173,7 +173,7 @@ else if (counterWithinThisMilli >= COUNTER_MAX) { // 转换毫秒为十六进制,不需要填充. String millisAsHex = Long.toHexString(millisCurrent); - // 转换计数器十六进制,需要填充0. + // 转换计数器十六进制,需要填充0. String counterAsHex = Long.toHexString(counterWithinThisMilli); counterAsHex = ZEROES.substring(0, COUNTER_HEX_DIGITS - counterAsHex.length()) + counterAsHex; diff --git a/bus-core/src/main/java/org/aoju/bus/core/key/ObjectID.java b/bus-core/src/main/java/org/aoju/bus/core/key/ObjectID.java index efb684649d..e7682485a8 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/key/ObjectID.java +++ b/bus-core/src/main/java/org/aoju/bus/core/key/ObjectID.java @@ -34,7 +34,7 @@ /** * 对象的全局唯一标识符

    - * 由12个字节组成,分割如下: + * 由12个字节组成,分割如下: * * @author Kimi Liu * @version 5.2.2 @@ -262,7 +262,7 @@ public static String babbleToMongod(String b) { } /** - * 获取生成的机器ID,标识机器/进程/类 加载程序 + * 获取生成的机器ID,标识机器/进程/类 加载程序 * * @return the int */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/key/SnowflakeID.java b/bus-core/src/main/java/org/aoju/bus/core/key/SnowflakeID.java index 76682423b2..ec7c194a28 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/key/SnowflakeID.java +++ b/bus-core/src/main/java/org/aoju/bus/core/key/SnowflakeID.java @@ -25,14 +25,14 @@ /** * 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 - * 1位标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0 - * 41位时间截(毫秒级),注意,41位时间截不是存储当前时间的时间截,而是存储时间截的差值(当前时间截 - 开始时间截) - * 得到的值),这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的。 - * 41位的时间截,可以使用69年 10位的数据机器位,可以部署在1024个节点,包括5位datacenterId和5位workerId - * 12位序列,毫秒内的计数,12位的计数顺序号支持每个节点每毫秒(同一机器,同一时间截)产生4096个ID序号 - * 加起来刚好64位,为一个Long型。 - * SnowFlake的优点是,整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞 - * (由数据中心ID和机器ID作区分),并且效率较高,经测试,SnowFlake每秒能够产生26万ID左右。 + * 1位标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0 + * 41位时间截(毫秒级),注意,41位时间截不是存储当前时间的时间截,而是存储时间截的差值(当前时间截 - 开始时间截) + * 得到的值),这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的 + * 41位的时间截,可以使用69年 10位的数据机器位,可以部署在1024个节点,包括5位datacenterId和5位workerId + * 12位序列,毫秒内的计数,12位的计数顺序号支持每个节点每毫秒(同一机器,同一时间截)产生4096个ID序号 + * 加起来刚好64位,为一个Long型 + * SnowFlake的优点是,整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞 + * (由数据中心ID和机器ID作区分),并且效率较高,经测试,SnowFlake每秒能够产生26万ID左右 * * @author Kimi Liu * @version 5.2.2 @@ -56,12 +56,12 @@ public class SnowflakeID { private final long datacenterIdBits = 5L; /** - * 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) + * 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) */ private final long maxWorkerId = -1L ^ (-1L << workerIdBits); /** - * 支持的最大数据标识id,结果是31 + * 支持的最大数据标识id,结果是31 */ private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits); @@ -86,7 +86,7 @@ public class SnowflakeID { private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits; /** - * 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095) + * 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095) */ private final long sequenceMask = -1L ^ (-1L << sequenceBits); @@ -136,13 +136,13 @@ public SnowflakeID(long workerId, long datacenterId) { public synchronized long nextId() { long timestamp = timeGen(); - //如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常 + //如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常 if (timestamp < lastTimestamp) { throw new RuntimeException( String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", lastTimestamp - timestamp)); } - //如果是同一时间生成的,则进行毫秒内序列 + //如果是同一时间生成的,则进行毫秒内序列 if (lastTimestamp == timestamp) { sequence = (sequence + 1) & sequenceMask; //毫秒内序列溢出 @@ -151,7 +151,7 @@ public synchronized long nextId() { timestamp = tilNextMillis(lastTimestamp); } } - //时间戳改变,毫秒内序列重置 + //时间戳改变,毫秒内序列重置 else { sequence = 0L; } @@ -167,7 +167,7 @@ public synchronized long nextId() { } /** - * 阻塞到下一个毫秒,直到获得新的时间戳 + * 阻塞到下一个毫秒,直到获得新的时间戳 * * @param lastTimestamp 上次生成ID的时间截 * @return 当前时间戳 diff --git a/bus-core/src/main/java/org/aoju/bus/core/key/UUID.java b/bus-core/src/main/java/org/aoju/bus/core/key/UUID.java index f05418b026..a5887ea8b3 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/key/UUID.java +++ b/bus-core/src/main/java/org/aoju/bus/core/key/UUID.java @@ -31,9 +31,9 @@ import java.util.Random; /** - * 提供通用唯一识别码(universally unique identifier)(UUID)实现,UUID表示一个128位的值。 - * 此类拷贝自java.util.UUID,用于生成不带-的UUID字符串 - * 这些通用标识符具有不同的变体。此类的方法用于操作 Leach-Salz 变体,不过构造方法允许创建任何 UUID 变体(将在下面进行描述)。 + * 提供通用唯一识别码(universally unique identifier)(UUID)实现,UUID表示一个128位的值 + * 此类拷贝自java.util.UUID,用于生成不带-的UUID字符串 + * 这些通用标识符具有不同的变体 此类的方法用于操作 Leach-Salz 变体,不过构造方法允许创建任何 UUID 变体(将在下面进行描述) * 变体 2 (Leach-Salz) UUID 的布局如下: long 型数据的最高有效位由以下无符号字段组成: * *

    @@ -49,9 +49,9 @@
      * 0x3FFF000000000000 clock_seq
      * 0x0000FFFFFFFFFFFF node
      * 
    - * variant 字段包含一个表示 UUID 布局的值。以上描述的位布局仅在 UUID 的 variant 值为 2(表示 Leach-Salz 变体)时才有效。 - * version 字段保存描述此 UUID 类型的值。有 4 种不同的基本 UUID 类型:基于时间的 UUID、DCE 安全 UUID、基于名称的 UUID 和随机生成的 UUID。 - * 这些类型的 version 值分别为 1、2、3 和 4。 + * variant 字段包含一个表示 UUID 布局的值 以上描述的位布局仅在 UUID 的 variant 值为 2(表示 Leach-Salz 变体)时才有效 + * version 字段保存描述此 UUID 类型的值 有 4 种不同的基本 UUID 类型:基于时间的 UUID、DCE 安全 UUID、基于名称的 UUID 和随机生成的 UUID + * 这些类型的 version 值分别为 1、2、3 和 4 * * @author Kimi Liu * @version 5.2.2 @@ -89,7 +89,7 @@ private UUID(byte[] data) { } /** - * 使用指定的数据构造新的 UUID。 + * 使用指定的数据构造新的 UUID * * @param mostSigBits 用于 {@code UUID} 的最高有效 64 位 * @param leastSigBits 用于 {@code UUID} 的最低有效 64 位 @@ -100,7 +100,7 @@ public UUID(long mostSigBits, long leastSigBits) { } /** - * 根据一个范围,生成一个随机的整数 + * 根据一个范围,生成一个随机的整数 * * @param min 最小值(包括) * @param max 最大值(包括) @@ -111,7 +111,7 @@ public static int random(int min, int max) { } /** - * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的本地线程伪随机数生成器生成该 UUID。 + * 获取类型 4(伪随机生成的)UUID 的静态工厂 使用加密的本地线程伪随机数生成器生成该 UUID * * @return 随机生成的 {@code UUID} */ @@ -120,7 +120,7 @@ public static UUID fastUUID() { } /** - * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。 + * 获取类型 4(伪随机生成的)UUID 的静态工厂 使用加密的强伪随机数生成器生成该 UUID * * @return 随机生成的 {@code UUID} */ @@ -129,9 +129,9 @@ public static UUID randomUUID() { } /** - * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。 + * 获取类型 4(伪随机生成的)UUID 的静态工厂 使用加密的强伪随机数生成器生成该 UUID * - * @param isSecure 是否使用{@link SecureRandom}如果是可以获得更安全的随机码,否则可以得到更好的性能 + * @param isSecure 是否使用{@link SecureRandom}如果是可以获得更安全的随机码,否则可以得到更好的性能 * @return 随机生成的 {@code UUID} */ public static UUID randomUUID(boolean isSecure) { @@ -147,9 +147,9 @@ public static UUID randomUUID(boolean isSecure) { } /** - * 根据指定的字节数组获取类型 3(基于名称的)UUID 的静态工厂。 + * 根据指定的字节数组获取类型 3(基于名称的)UUID 的静态工厂 * - * @param name 用于构造 UUID 的字节数组。 + * @param name 用于构造 UUID 的字节数组 * @return 根据指定数组生成的 {@code UUID} */ public static UUID nameUUIDFromBytes(byte[] name) { @@ -168,7 +168,7 @@ public static UUID nameUUIDFromBytes(byte[] name) { } /** - * 根据 {@link #toString()} 方法中描述的字符串标准表示形式创建{@code UUID}。 + * 根据 {@link #toString()} 方法中描述的字符串标准表示形式创建{@code UUID} * * @param name 指定 {@code UUID} 字符串 * @return 具有指定值的 {@code UUID} @@ -209,25 +209,25 @@ private static String digits(long val, int digits) { } /** - * 返回此 UUID 的 128 位值中的最低有效 64 位。 + * 返回此 UUID 的 128 位值中的最低有效 64 位 * - * @return 此 UUID 的 128 位值中的最低有效 64 位。 + * @return 此 UUID 的 128 位值中的最低有效 64 位 */ public long getLeastSignificantBits() { return leastSigBits; } /** - * 返回此 UUID 的 128 位值中的最高有效 64 位。 + * 返回此 UUID 的 128 位值中的最高有效 64 位 * - * @return 此 UUID 的 128 位值中最高有效 64 位。 + * @return 此 UUID 的 128 位值中最高有效 64 位 */ public long getMostSignificantBits() { return mostSigBits; } /** - * 与此 {@code UUID} 相关联的版本号. 版本号描述此 {@code UUID} 是如何生成的。 + * 与此 {@code UUID} 相关联的版本号. 版本号描述此 {@code UUID} 是如何生成的 *

    * 版本号具有以下含意: *

      @@ -245,13 +245,13 @@ public int version() { } /** - * 与此 {@code UUID} 相关联的变体号。变体号描述 {@code UUID} 的布局。 + * 与此 {@code UUID} 相关联的变体号 变体号描述 {@code UUID} 的布局 *

      * 变体号具有以下含意: *

        *
      • 0 为 NCS 向后兼容保留 *
      • 2 IETF RFC 4122(Leach-Salz), 用于此类 - *
      • 6 保留,微软向后兼容 + *
      • 6 保留,微软向后兼容 *
      • 7 保留供以后定义使用 *
      * @@ -267,18 +267,18 @@ public int variant() { } /** - * 与此 UUID 相关联的时间戳值。 + * 与此 UUID 相关联的时间戳值 * *

      - * 60 位的时间戳值根据此 {@code UUID} 的 time_low、time_mid 和 time_hi 字段构造。 - * 所得到的时间戳以 100 毫微秒为单位,从 UTC(通用协调时间) 1582 年 10 月 15 日零时开始。 + * 60 位的时间戳值根据此 {@code UUID} 的 time_low、time_mid 和 time_hi 字段构造 + * 所得到的时间戳以 100 毫微秒为单位,从 UTC(通用协调时间) 1582 年 10 月 15 日零时开始 * *

      - * 时间戳值仅在在基于时间的 UUID(其 version 类型为 1)中才有意义。 - * 如果此 {@code UUID} 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。 + * 时间戳值仅在在基于时间的 UUID(其 version 类型为 1)中才有意义 + * 如果此 {@code UUID} 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException * * @return the long - * @throws UnsupportedOperationException 如果此 {@code UUID} 不是 version 为 1 的 UUID。 + * @throws UnsupportedOperationException 如果此 {@code UUID} 不是 version 为 1 的 UUID */ public long timestamp() throws UnsupportedOperationException { checkTimeBase(); @@ -288,12 +288,12 @@ public long timestamp() throws UnsupportedOperationException { } /** - * 与此 UUID 相关联的时钟序列值。 + * 与此 UUID 相关联的时钟序列值 * *

      - * 14 位的时钟序列值根据此 UUID 的 clock_seq 字段构造。clock_seq 字段用于保证在基于时间的 UUID 中的时间唯一性。 + * 14 位的时钟序列值根据此 UUID 的 clock_seq 字段构造 clock_seq 字段用于保证在基于时间的 UUID 中的时间唯一性 *

      - * {@code clockSequence} 值仅在基于时间的 UUID(其 version 类型为 1)中才有意义。 如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。 + * {@code clockSequence} 值仅在基于时间的 UUID(其 version 类型为 1)中才有意义 如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException * * @return 此 {@code UUID} 的时钟序列 * @throws UnsupportedOperationException 如果此 UUID 的 version 不为 1 @@ -304,13 +304,13 @@ public int clockSequence() throws UnsupportedOperationException { } /** - * 与此 UUID 相关的节点值。 + * 与此 UUID 相关的节点值 * *

      - * 48 位的节点值根据此 UUID 的 node 字段构造。此字段旨在用于保存机器的 IEEE 802 地址,该地址用于生成此 UUID 以保证空间唯一性。 + * 48 位的节点值根据此 UUID 的 node 字段构造 此字段旨在用于保存机器的 IEEE 802 地址,该地址用于生成此 UUID 以保证空间唯一性 *

      - * 节点值仅在基于时间的 UUID(其 version 类型为 1)中才有意义。 - * 如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。 + * 节点值仅在基于时间的 UUID(其 version 类型为 1)中才有意义 + * 如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException * * @return 此 {@code UUID} 的节点值 * @throws UnsupportedOperationException 如果此 UUID 的 version 不为 1 @@ -323,7 +323,7 @@ public long node() throws UnsupportedOperationException { // Object Inherited Methods /** - * 返回此{@code UUID} 的字符串表现形式。 + * 返回此{@code UUID} 的字符串表现形式 * *

      * UUID 的字符串表示形式由此 BNF 描述: @@ -350,7 +350,7 @@ public String toString() { } /** - * 返回此{@code UUID} 的字符串表现形式。 + * 返回此{@code UUID} 的字符串表现形式 * *

      * UUID 的字符串表示形式由此 BNF 描述: @@ -368,7 +368,7 @@ public String toString() { * } *

* - * @param isSimple 是否简单模式,简单模式为不带'-'的UUID字符串 + * @param isSimple 是否简单模式,简单模式为不带'-'的UUID字符串 * @return 此{@code UUID} 的字符串表现形式 */ public String toString(boolean isSimple) { @@ -400,9 +400,9 @@ public String toString(boolean isSimple) { } /** - * 返回此 UUID 的哈希码。 + * 返回此 UUID 的哈希码 * - * @return UUID 的哈希码值。 + * @return UUID 的哈希码值 */ public int hashCode() { long hilo = mostSigBits ^ leastSigBits; @@ -410,12 +410,12 @@ public int hashCode() { } /** - * 将此对象与指定对象比较。 + * 将此对象与指定对象比较 *

- * 当且仅当参数不为 {@code null}、而是一个 UUID 对象、具有与此 UUID 相同的 varriant、包含相同的值(每一位均相同)时,结果才为 {@code true}。 + * 当且仅当参数不为 {@code null}、而是一个 UUID 对象、具有与此 UUID 相同的 varriant、包含相同的值(每一位均相同)时,结果才为 {@code true} * * @param obj 要与之比较的对象 - * @return 如果对象相同,则返回 {@code true};否则返回 {@code false} + * @return 如果对象相同, 则返回 {@code true};否则返回 {@code false} */ public boolean equals(Object obj) { if ((null == obj) || (obj.getClass() != UUID.class)) { @@ -427,13 +427,13 @@ public boolean equals(Object obj) { /** - * 将此 UUID 与指定的 UUID 比较。 + * 将此 UUID 与指定的 UUID 比较 * *

- * 如果两个 UUID 不同,且第一个 UUID 的最高有效字段大于第二个 UUID 的对应字段,则第一个 UUID 大于第二个 UUID。 + * 如果两个 UUID 不同,且第一个 UUID 的最高有效字段大于第二个 UUID 的对应字段,则第一个 UUID 大于第二个 UUID * * @param val 与此 UUID 比较的 UUID - * @return 在此 UUID 小于、等于或大于 val 时,分别返回 -1、0 或 1。 + * @return 在此 UUID 小于、等于或大于 val 时,分别返回 -1、0 或 1 */ public int compareTo(UUID val) { // The ordering is intentionally set up so that the UUIDs diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Ansi.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Ansi.java index 268eab8a9d..24c77a332d 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Ansi.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Ansi.java @@ -32,11 +32,11 @@ * 使用方法: * String msg = Ansi.Red.and(Ansi.BgYellow).format("Hello %s", name) * String msg = Ansi.Blink.colorize("BOOM!") - * 或者,可以直接使用常数: + * 或者,可以直接使用常数: * String msg = new Ansi(Ansi.ITALIC, Ansi.GREEN).format("Green money") * Or, even: * String msg = Ansi.BLUE + "scientific" - * 注意:同时出现多种组合FG颜色或BG颜色,只有最后一个会显示 + * 注意:同时出现多种组合FG颜色或BG颜色,只有最后一个会显示 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Assert.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Assert.java index ceda02ac81..1934c7cc61 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Assert.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Assert.java @@ -32,7 +32,7 @@ /** * 断言 - * 断言某些对象或值是否符合规定,否则抛出异常。经常用于做变量检查 + * 断言某些对象或值是否符合规定,否则抛出异常 经常用于做变量检查 * * @author Kimi Liu * @version 5.2.2 @@ -41,14 +41,14 @@ public class Assert { /** - * 断言是否为真,如果为 {@code false} 抛出 {@code IllegalArgumentException} 异常 + * 断言是否为真,如果为 {@code false} 抛出 {@code IllegalArgumentException} 异常 * *

      * Assert.isTrue(i > 0, "The value must be greater than zero");
      * 
* * @param expression 波尔值 - * @param errorMsgTemplate 错误抛出异常附带的消息模板,变量用{}代替 + * @param errorMsgTemplate 错误抛出异常附带的消息模板,变量用{}代替 * @param params 参数列表 * @throws IllegalArgumentException if expression is {@code false} */ @@ -59,7 +59,7 @@ public static void isTrue(boolean expression, String errorMsgTemplate, Object... } /** - * 断言是否为真,如果为 {@code false} 抛出 {@code IllegalArgumentException} 异常 + * 断言是否为真,如果为 {@code false} 抛出 {@code IllegalArgumentException} 异常 * *
      * Assert.isTrue(i > 0, "The value must be greater than zero");
@@ -73,14 +73,14 @@ public static void isTrue(boolean expression) throws IllegalArgumentException {
     }
 
     /**
-     * 断言是否为假,如果为 {@code true} 抛出 {@code IllegalArgumentException} 异常
+     * 断言是否为假,如果为 {@code true} 抛出 {@code IllegalArgumentException} 异常
      *
      * 
      * Assert.isFalse(i < 0, "The value must be greater than zero");
      * 
* * @param expression 波尔值 - * @param errorMsgTemplate 错误抛出异常附带的消息模板,变量用{}代替 + * @param errorMsgTemplate 错误抛出异常附带的消息模板,变量用{}代替 * @param params 参数列表 * @throws IllegalArgumentException if expression is {@code false} */ @@ -91,7 +91,7 @@ public static void isFalse(boolean expression, String errorMsgTemplate, Object.. } /** - * 断言是否为假,如果为 {@code true} 抛出 {@code IllegalArgumentException} 异常 + * 断言是否为假,如果为 {@code true} 抛出 {@code IllegalArgumentException} 异常 * *
      * Assert.isFalse(i < 0);
@@ -105,14 +105,14 @@ public static void isFalse(boolean expression) throws IllegalArgumentException {
     }
 
     /**
-     * 断言对象是否为{@code null} ,如果不为{@code null} 抛出{@link IllegalArgumentException} 异常
+     * 断言对象是否为{@code null} ,如果不为{@code null} 抛出{@link IllegalArgumentException} 异常
      *
      * 
      * Assert.isNull(value, "The value must be null");
      * 
* * @param object 被检查的对象 - * @param errorMsgTemplate 消息模板,变量使用{}表示 + * @param errorMsgTemplate 消息模板,变量使用{}表示 * @param params 参数列表 * @throws IllegalArgumentException if the object is not {@code null} */ @@ -123,7 +123,7 @@ public static void isNull(Object object, String errorMsgTemplate, Object... para } /** - * 断言对象是否为{@code null} ,如果不为{@code null} 抛出{@link IllegalArgumentException} 异常 + * 断言对象是否为{@code null} ,如果不为{@code null} 抛出{@link IllegalArgumentException} 异常 * *
      * Assert.isNull(value);
@@ -137,7 +137,7 @@ public static void isNull(Object object) throws NullPointerException {
     }
 
     /**
-     * 断言对象是否不为{@code null} ,如果为{@code null} 抛出{@link IllegalArgumentException} 异常 Assert that an object is not {@code null} .
+     * 断言对象是否不为{@code null} ,如果为{@code null} 抛出{@link IllegalArgumentException} 异常 Assert that an object is not {@code null} .
      *
      * 
      * Assert.notNull(clazz, "The class must not be null");
@@ -145,7 +145,7 @@ public static void isNull(Object object) throws NullPointerException {
      *
      * @param               被检查对象泛型类型
      * @param object           被检查对象
-     * @param errorMsgTemplate 错误消息模板,变量使用{}表示
+     * @param errorMsgTemplate 错误消息模板,变量使用{}表示
      * @param params           参数
      * @return 被检查后的对象
      * @throws NullPointerException if the object is {@code null}
@@ -158,7 +158,7 @@ public static  T notNull(T object, String errorMsgTemplate, Object... params)
     }
 
     /**
-     * 断言对象是否不为{@code null} ,如果为{@code null} 抛出{@link IllegalArgumentException} 异常
+     * 断言对象是否不为{@code null} ,如果为{@code null} 抛出{@link IllegalArgumentException} 异常
      *
      * 
      * Assert.notNull(clazz);
@@ -174,14 +174,14 @@ public static  T notNull(T object) throws NullPointerException {
     }
 
     /**
-     * 检查给定字符串是否为空,为空抛出 {@link IllegalArgumentException}
+     * 检查给定字符串是否为空,为空抛出 {@link IllegalArgumentException}
      *
      * 
      * Assert.notEmpty(name, "Name must not be empty");
      * 
* * @param text 被检查字符串 - * @param errorMsgTemplate 错误消息模板,变量使用{}表示 + * @param errorMsgTemplate 错误消息模板,变量使用{}表示 * @param params 参数 * @return 非空字符串 * @throws IllegalArgumentException 被检查字符串为空 @@ -194,7 +194,7 @@ public static String notEmpty(String text, String errorMsgTemplate, Object... pa } /** - * 检查给定字符串是否为空,为空抛出 {@link IllegalArgumentException} + * 检查给定字符串是否为空,为空抛出 {@link IllegalArgumentException} * *
      * Assert.notEmpty(name);
@@ -209,14 +209,14 @@ public static String notEmpty(String text) throws IllegalArgumentException {
     }
 
     /**
-     * 检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出 {@link IllegalArgumentException}
+     * 检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出 {@link IllegalArgumentException}
      *
      * 
      * Assert.notBlank(name, "Name must not be blank");
      * 
* * @param text 被检查字符串 - * @param errorMsgTemplate 错误消息模板,变量使用{}表示 + * @param errorMsgTemplate 错误消息模板,变量使用{}表示 * @param params 参数 * @return 非空字符串 * @throws IllegalArgumentException 被检查字符串为空白 @@ -230,7 +230,7 @@ public static String notBlank(String text, String errorMsgTemplate, Object... pa } /** - * 检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出 {@link IllegalArgumentException} + * 检查给定字符串是否为空白(null、空串或只包含空白符),为空抛出 {@link IllegalArgumentException} * *
      * Assert.notBlank(name, "Name must not be blank");
@@ -283,7 +283,7 @@ public static String notContain(String textToSearch, String substring) throws Il
     }
 
     /**
-     * 断言给定数组是否包含元素,数组必须不为 {@code null} 且至少包含一个元素
+     * 断言给定数组是否包含元素,数组必须不为 {@code null} 且至少包含一个元素
      *
      * 
      * Assert.notEmpty(array, "The array must have elements");
@@ -303,7 +303,7 @@ public static Object[] notEmpty(Object[] array, String errorMsgTemplate, Object.
     }
 
     /**
-     * 断言给定数组是否包含元素,数组必须不为 {@code null} 且至少包含一个元素
+     * 断言给定数组是否包含元素,数组必须不为 {@code null} 且至少包含一个元素
      *
      * 
      * Assert.notEmpty(array, "The array must have elements");
@@ -318,7 +318,7 @@ public static Object[] notEmpty(Object[] array) throws IllegalArgumentException
     }
 
     /**
-     * 断言给定数组是否不包含{@code null}元素,如果数组为空或 {@code null}将被认为不包含
+     * 断言给定数组是否不包含{@code null}元素,如果数组为空或 {@code null}将被认为不包含
      *
      * 
      * Assert.noNullElements(array, "The array must have non-null elements");
@@ -339,7 +339,7 @@ public static  T[] noNullElements(T[] array, String errorMsgTemplate, Object.
     }
 
     /**
-     * 断言给定数组是否不包含{@code null}元素,如果数组为空或 {@code null}将被认为不包含
+     * 断言给定数组是否不包含{@code null}元素,如果数组为空或 {@code null}将被认为不包含
      *
      * 
      * Assert.noNullElements(array);
diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Caller.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Caller.java
index 015cd4300b..aaf17a60f6 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/lang/Caller.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Caller.java
@@ -26,7 +26,7 @@
 import org.aoju.bus.core.lang.exception.InstrumentException;
 
 /**
- * 调用者。可以通过此类的方法获取调用者、多级调用者以及判断是否被调用
+ * 调用者 可以通过此类的方法获取调用者、多级调用者以及判断是否被调用
  *
  * @author Kimi Liu
  * @version 5.2.2
@@ -59,7 +59,7 @@ public static Class getCallerCaller() {
     }
 
     /**
-     * 获得调用者,指定第几级调用者
+     * 获得调用者,指定第几级调用者
      * 调用者层级关系:
      * 
      * 0 {@link Caller}
@@ -68,7 +68,7 @@ public static Class getCallerCaller() {
      * ...
      * 
* - * @param depth 层级。0表示{@link Caller}本身,1表示调用{@link Caller}的类,2表示调用者的调用者,依次类推 + * @param depth 层级 0表示{@link Caller}本身,1表示调用{@link Caller}的类,2表示调用者的调用者,依次类推 * @return 第几级调用者 */ public static Class getCaller(int depth) { @@ -122,7 +122,7 @@ private interface ICaller { Class getCallerCaller(); /** - * 获得调用者,指定第几级调用者 + * 获得调用者,指定第几级调用者 * 调用者层级关系: *
          * 0 {@link Caller}
@@ -131,7 +131,7 @@ private interface ICaller {
          * ...
          * 
* - * @param depth 层级。0表示{@link Caller}本身,1表示调用{@link Caller}的类,2表示调用者的调用者,依次类推 + * @param depth 层级 0表示{@link Caller}本身,1表示调用{@link Caller}的类,2表示调用者的调用者,依次类推 * @return 第几级调用者 */ Class getCaller(int depth); @@ -185,7 +185,7 @@ public boolean isCalledBy(Class clazz) { } /** - * 通过StackTrace方式获取调用者。此方式效率最低,不推荐使用 + * 通过StackTrace方式获取调用者 此方式效率最低,不推荐使用 * * @author Kimi Liu */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Chain.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Chain.java index c0ae2a6c9f..5ec02d06ec 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Chain.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Chain.java @@ -27,7 +27,7 @@ * 责任链接口 * * @param 元素类型 - * @param 目标类类型,用于返回this对象 + * @param 目标类类型,用于返回this对象 * @author Kimi Liu * @version 5.2.2 * @since JDK 1.8+ diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Console.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Console.java index dc96527651..9d82d0c5f2 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Console.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Console.java @@ -29,7 +29,7 @@ /** * 命令行(控制台)工具方法类 - * 此类主要针对{@link System#out} 和 {@link System#err} 做封装。 + * 此类主要针对{@link System#out} 和 {@link System#err} 做封装 * * @author Kimi Liu * @version 5.2.2 @@ -46,7 +46,7 @@ public static void log() { /** * 打印控制台日志 - * 如果传入打印对象为{@link Throwable}对象,那么同时打印堆栈 + * 如果传入打印对象为{@link Throwable}对象,那么同时打印堆栈 * * @param obj 要打印的对象 */ @@ -72,7 +72,7 @@ public static void print(Object obj) { /** * 打印控制台日志 * - * @param template 文本模板,被替换的部分用 {} 表示 + * @param template 文本模板,被替换的部分用 {} 表示 * @param values 值 */ public static void log(String template, Object... values) { @@ -82,7 +82,7 @@ public static void log(String template, Object... values) { /** * 打印控制台日志 * - * @param template 文本模板,被替换的部分用 {} 表示 + * @param template 文本模板,被替换的部分用 {} 表示 * @param values 值 * @since 3.3.1 */ @@ -94,7 +94,7 @@ public static void print(String template, Object... values) { * 打印控制台日志 * * @param t 异常对象 - * @param template 文本模板,被替换的部分用 {} 表示 + * @param template 文本模板,被替换的部分用 {} 表示 * @param values 值 */ public static void log(Throwable t, String template, Object... values) { @@ -105,14 +105,14 @@ public static void log(Throwable t, String template, Object... values) { } /** - * 同 System.System.err.println()方法,打印控制台日志 + * 同 System.System.err.println()方法,打印控制台日志 */ public static void error() { System.err.println(); } /** - * 同 System.System.err.println()方法,打印控制台日志 + * 同 System.System.err.println()方法,打印控制台日志 * * @param obj 要打印的对象 */ @@ -126,9 +126,9 @@ public static void error(Object obj) { } /** - * 同 System.System.err.println()方法,打印控制台日志 + * 同 System.System.err.println()方法,打印控制台日志 * - * @param template 文本模板,被替换的部分用 {} 表示 + * @param template 文本模板,被替换的部分用 {} 表示 * @param values 值 */ public static void error(String template, Object... values) { @@ -136,10 +136,10 @@ public static void error(String template, Object... values) { } /** - * 同 System.System.err.println()方法,打印控制台日志 + * 同 System.System.err.println()方法,打印控制台日志 * * @param t 异常对象 - * @param template 文本模板,被替换的部分用 {} 表示 + * @param template 文本模板,被替换的部分用 {} 表示 * @param values 值 */ public static void error(Throwable t, String template, Object... values) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Dict.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Dict.java index 3888a5e804..20ee559b4b 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Dict.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Dict.java @@ -35,7 +35,7 @@ import java.util.*; /** - * 字典对象,扩充了HashMap中的方法 + * 字典对象,扩充了HashMap中的方法 * * @author Kimi Liu * @version 5.2.2 @@ -65,7 +65,7 @@ public Dict(int initialCapacity) { * 构造 * * @param initialCapacity 初始容量 - * @param loadFactor 容量增长因子,0~1,即达到容量的百分之多少时扩容 + * @param loadFactor 容量增长因子,0~1,即达到容量的百分之多少时扩容 */ public Dict(int initialCapacity, float loadFactor) { super(initialCapacity, loadFactor); @@ -161,7 +161,7 @@ public T toBean(Class clazz) { } /** - * 填充Value Object对象,忽略大小写 + * 填充Value Object对象,忽略大小写 * * @param Bean类型 * @param clazz Value Object(或者POJO)的类 @@ -173,7 +173,7 @@ public T toBeanIgnoreCase(Class clazz) { /** * 将值对象转换为Dict - * 类名会被当作表名,小写第一个字母 + * 类名会被当作表名,小写第一个字母 * * @param Bean类型 * @param bean 值对象 @@ -187,7 +187,7 @@ public Dict parseBean(T bean) { /** * 将值对象转换为Dict - * 类名会被当作表名,小写第一个字母 + * 类名会被当作表名,小写第一个字母 * * @param Bean类型 * @param bean 值对象 @@ -203,7 +203,7 @@ public Dict parseBean(T bean, boolean isToUnderlineCase, boolean ignoreNullV /** * 与给定实体对比并去除相同的部分 - * 此方法用于在更新操作时避免所有字段被更新,跳过不需要更新的字段 version from 2.0.0 + * 此方法用于在更新操作时避免所有字段被更新,跳过不需要更新的字段 version from 2.0.0 * * @param 字典对象类型 * @param dict 字典对象 @@ -224,7 +224,7 @@ public void removeEqual(T dict, String... withoutNames) { } /** - * 过滤Map保留指定键值对,如果键不存在跳过 + * 过滤Map保留指定键值对,如果键不存在跳过 * * @param keys 键列表 * @return Dict 结果 @@ -253,7 +253,7 @@ public Dict set(String attr, Object value) { } /** - * 设置列,当键或值为null时忽略 + * 设置列,当键或值为null时忽略 * * @param attr 属性 * @param value 值 diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Editor.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Editor.java index 23d4270ebe..0ef655b2c3 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Editor.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Editor.java @@ -24,11 +24,11 @@ package org.aoju.bus.core.lang; /** - * 编辑器接口,常用于对于集合中的元素做统一编辑 + * 编辑器接口,常用于对于集合中的元素做统一编辑 * 此编辑器两个作用: * *
- * 1、如果返回值为null,表示此值被抛弃
+ * 1、如果返回值为null,表示此值被抛弃
  * 2、对对象做修改
  * 
* @@ -43,7 +43,7 @@ public interface Editor { * 修改过滤后的结果 * * @param t 被过滤的对象 - * @return 修改后的对象,如果被过滤返回null + * @return 修改后的对象, 如果被过滤返回null */ T edit(T t); diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Func.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Func.java index 882764558e..4a0e113dc5 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Func.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Func.java @@ -25,8 +25,8 @@ /** * 函数对象 - * 一个函数接口代表一个一个函数,用于包装一个函数为对象 - * 在JDK8之前,Java的函数并不能作为参数传递,也不能作为返回值存在,此接口用于将一个函数包装成为一个对象,从而传递对象 + * 一个函数接口代表一个一个函数,用于包装一个函数为对象 + * 在JDK8之前,Java的函数并不能作为参数传递,也不能作为返回值存在,此接口用于将一个函数包装成为一个对象,从而传递对象 * * @param

参数类型 * @param 返回值类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Holder.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Holder.java index 46df5b4e10..f6edd24c22 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Holder.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Holder.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.lang.mutable.MutableObject; /** - * 为不可变的对象引用提供一个可变的包装,在java中支持引用传递。 + * 为不可变的对象引用提供一个可变的包装,在java中支持引用传递 * * @param 所持有值类型 * @author Kimi Liu @@ -54,10 +54,10 @@ public Holder(T value) { } /** - * 新建Holder类,持有指定值,当值为空时抛出空指针异常 + * 新建Holder类,持有指定值,当值为空时抛出空指针异常 * * @param 被持有的对象类型 - * @param value 值,不能为空 + * @param value 值,不能为空 * @return Holder */ public static Holder of(T value) throws NullPointerException { diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Murmur.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Murmur.java index df3a6cc3d4..0db8b137e8 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Murmur.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Murmur.java @@ -62,7 +62,7 @@ public static int hash32(byte[] data) { * * @param data 数据 * @param length 长度 - * @param seed 种子,默认0 + * @param seed 种子,默认0 * @return Hash值 */ public static int hash32(byte[] data, int length, int seed) { @@ -141,7 +141,7 @@ public static long hash64(byte[] data) { * * @param data 数据 * @param length 长度 - * @param seed 种子,默认0 + * @param seed 种子,默认0 * @return Hash值 */ public static long hash64(byte[] data, int length, int seed) { @@ -224,7 +224,7 @@ public static long[] hash128(byte[] data) { * * @param data 数据 * @param length 长度 - * @param seed 种子,默认0 + * @param seed 种子,默认0 * @return Hash值(2 longs) */ public static long[] hash128(byte[] data, int length, int seed) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Replacer.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Replacer.java index d76ec85185..5c6b5c19f4 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Replacer.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Replacer.java @@ -25,7 +25,7 @@ /** * 替换器 - * 通过实现此接口完成指定类型对象的替换操作,替换后的目标类型依旧为指定类型 + * 通过实现此接口完成指定类型对象的替换操作,替换后的目标类型依旧为指定类型 * * @param 被替换操作的类型 * @author Kimi Liu diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Scaner.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Scaner.java index eaf668fd6e..4610542075 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Scaner.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Scaner.java @@ -54,15 +54,15 @@ public class Scaner { */ private String packageName; /** - * 包名,最后跟一个点,表示包名,避免在检查前缀时的歧义 + * 包名,最后跟一个点,表示包名,避免在检查前缀时的歧义 */ private String packageNameWithDot; /** - * 包路径,用于文件中对路径操作 + * 包路径,用于文件中对路径操作 */ private String packageDirName; /** - * 包路径,用于jar中对路径操作,在Linux下与packageDirName一致 + * 包路径,用于jar中对路径操作,在Linux下与packageDirName一致 */ private String packagePath; /** @@ -81,26 +81,26 @@ public class Scaner { private Set> classes = new HashSet>(); /** - * 构造,默认UTF-8编码 + * 构造,默认UTF-8编码 */ public Scaner() { this(null); } /** - * 构造,默认UTF-8编码 + * 构造,默认UTF-8编码 * - * @param packageName 包名,所有包传入""或者null + * @param packageName 包名,所有包传入""或者null */ public Scaner(String packageName) { this(packageName, null); } /** - * 构造,默认UTF-8编码 + * 构造,默认UTF-8编码 * - * @param packageName 包名,所有包传入""或者null - * @param classFilter 过滤器,无需传入null + * @param packageName 包名,所有包传入""或者null + * @param classFilter 过滤器,无需传入null */ public Scaner(String packageName, Filter> classFilter) { this(packageName, classFilter, org.aoju.bus.core.consts.Charset.UTF_8); @@ -109,8 +109,8 @@ public Scaner(String packageName, Filter> classFilter) { /** * 构造 * - * @param packageName 包名,所有包传入""或者null - * @param classFilter 过滤器,无需传入null + * @param packageName 包名,所有包传入""或者null + * @param classFilter 过滤器,无需传入null * @param charset 编码 */ public Scaner(String packageName, Filter> classFilter, Charset charset) { @@ -175,12 +175,12 @@ public static Set> scanPackage(String packageName) { } /** - * 扫面包路径下满足class过滤器条件的所有class文件, + * 扫面包路径下满足class过滤器条件的所有class文件, * 如果包路径为 com.abs + A.class 但是输入 abs会产生classNotFoundException * 因为className 应该为 com.abs.A 现在却成为abs.A,此工具类对该异常进行忽略处理 * * @param packageName 包路径 com | com. | com.abs | com.abs. - * @param classFilter class过滤器,过滤掉不需要的class + * @param classFilter class过滤器,过滤掉不需要的class * @return 类集合 */ public static Set> scanPackage(String packageName, Filter> classFilter) { @@ -228,7 +228,7 @@ public void setInitialize(boolean initialize) { private void scanJavaClassPaths() { final String[] javaClassPaths = ClassUtils.getJavaClassPaths(); for (String classPath : javaClassPaths) { - // bug修复,由于路径中空格和中文导致的Jar找不到 + // bug修复,由于路径中空格和中文导致的Jar找不到 classPath = UriUtils.decode(classPath, CharsetUtils.systemCharsetName()); scanFile(new File(classPath), null); @@ -246,7 +246,7 @@ private void scanFile(File file, String rootDir) { final String fileName = file.getAbsolutePath(); if (fileName.endsWith(FileType.CLASS)) { final String className = fileName// - // 8为classes长度,fileName.length() - 6为".class"的长度 + // 8为classes长度,fileName.length() - 6为".class"的长度 .substring(rootDir.length(), fileName.length() - 6)// .replace(File.separatorChar, Symbol.C_DOT);// //加入满足条件的类 @@ -297,9 +297,9 @@ private Class loadClass(String className) { try { clazz = Class.forName(className, this.initialize, ClassUtils.getClassLoader()); } catch (NoClassDefFoundError e) { - // 由于依赖库导致的类无法加载,直接跳过此类 + // 由于依赖库导致的类无法加载,直接跳过此类 } catch (UnsupportedClassVersionError e) { - // 版本导致的不兼容的类,跳过 + // 版本导致的不兼容的类,跳过 } catch (Exception e) { throw new RuntimeException(e); // Console.error(e); @@ -308,7 +308,7 @@ private Class loadClass(String className) { } /** - * 通过过滤器,是否满足接受此类的条件 + * 通过过滤器,是否满足接受此类的条件 * * @param className 类 * @return 是否接受 @@ -320,12 +320,12 @@ private void addIfAccept(String className) { int classLen = className.length(); int packageLen = this.packageName.length(); if (classLen == packageLen) { - //类名和包名长度一致,用户可能传入的包名是类名 + //类名和包名长度一致,用户可能传入的包名是类名 if (className.equals(this.packageName)) { addIfAccept(loadClass(className)); } } else if (classLen > packageLen) { - //检查类名是否以指定包名为前缀,包名后加. + //检查类名是否以指定包名为前缀,包名后加. if (className.startsWith(this.packageNameWithDot)) { addIfAccept(loadClass(className)); } @@ -333,7 +333,7 @@ private void addIfAccept(String className) { } /** - * 通过过滤器,是否满足接受此类的条件 + * 通过过滤器,是否满足接受此类的条件 * * @param clazz 类 * @return 是否接受 diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/SimpleCache.java b/bus-core/src/main/java/org/aoju/bus/core/lang/SimpleCache.java index 31f5498c70..ad90a10ca7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/SimpleCache.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/SimpleCache.java @@ -30,7 +30,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock; /** - * 简单缓存,无超时实现,使用{@link WeakHashMap}实现缓存自动清理 + * 简单缓存,无超时实现,使用{@link WeakHashMap}实现缓存自动清理 * * @param 键类型 * @param 值类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Singleton.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Singleton.java index a60b905f79..693dbdc950 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Singleton.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Singleton.java @@ -31,8 +31,8 @@ /** * 单例类 - * 提供单例对象的统一管理,当调用get方法时,如果对象池中存在此对象,返回此对象,否则创建新对象返回 - * 注意:单例针对的是类和对象,因此get方法第一次调用时创建的对象始终唯一,也就是说就算参数变更,返回的依旧是第一次创建的对象 + * 提供单例对象的统一管理,当调用get方法时,如果对象池中存在此对象,返回此对象,否则创建新对象返回 + * 注意:单例针对的是类和对象,因此get方法第一次调用时创建的对象始终唯一,也就是说就算参数变更,返回的依旧是第一次创建的对象 * * @author Kimi Liu * @version 5.2.2 @@ -47,8 +47,8 @@ private Singleton() { /** * 获得指定类的单例对象 - * 对象存在于池中返回,否则创建,每次调用此方法获得的对象为同一个对象 - * 注意:单例针对的是类和对象,因此get方法第一次调用时创建的对象始终唯一,也就是说就算参数变更,返回的依旧是第一次创建的对象 + * 对象存在于池中返回,否则创建,每次调用此方法获得的对象为同一个对象 + * 注意:单例针对的是类和对象,因此get方法第一次调用时创建的对象始终唯一,也就是说就算参数变更,返回的依旧是第一次创建的对象 * * @param 单例对象类型 * @param clazz 类 @@ -73,8 +73,8 @@ public static T get(Class clazz, Object... params) { /** * 获得指定类的单例对象 - * 对象存在于池中返回,否则创建,每次调用此方法获得的对象为同一个对象 - * 注意:单例针对的是类和对象,因此get方法第一次调用时创建的对象始终唯一,也就是说就算参数变更,返回的依旧是第一次创建的对象 + * 对象存在于池中返回,否则创建,每次调用此方法获得的对象为同一个对象 + * 注意:单例针对的是类和对象,因此get方法第一次调用时创建的对象始终唯一,也就是说就算参数变更,返回的依旧是第一次创建的对象 * * @param 单例对象类型 * @param className 类名 @@ -87,7 +87,7 @@ public static T get(String className, Object... params) { } /** - * 将已有对象放入单例中,其Class做为键 + * 将已有对象放入单例中,其Class做为键 * * @param obj 对象 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Validator.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Validator.java index 88569c5fdb..b1c67248d8 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Validator.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Validator.java @@ -100,7 +100,7 @@ public static boolean isNotEmpty(Object value) { } /** - * 验证是否为空,为空时抛出异常 + * 验证是否为空,为空时抛出异常 * 对于String类型判定是否为empty(null 或 "") * * @param value 值 @@ -126,7 +126,7 @@ public static boolean equal(Object t1, Object t2) { } /** - * 验证是否相等,不相等抛出异常 + * 验证是否相等,不相等抛出异常 * * @param t1 对象1 * @param t2 对象2 @@ -140,7 +140,7 @@ public static void validateEqual(Object t1, Object t2, String errorMsg) throws I } /** - * 验证是否不等,相等抛出异常 + * 验证是否不等,相等抛出异常 * * @param t1 对象1 * @param t2 对象2 @@ -247,8 +247,8 @@ public static void validateGeneral(String value, String errorMsg) throws Instrum * 验证是否为给定长度范围的英文字母 、数字和下划线 * * @param value 值 - * @param min 最小长度,负数自动识别为0 - * @param max 最大长度,0或负数表示不限制最大长度 + * @param min 最小长度,负数自动识别为0 + * @param max 最大长度,0或负数表示不限制最大长度 * @return 是否为给定长度范围的英文字母 、数字和下划线 */ public static boolean isGeneral(String value, int min, int max) { @@ -266,8 +266,8 @@ public static boolean isGeneral(String value, int min, int max) { * 验证是否为给定长度范围的英文字母 、数字和下划线 * * @param value 值 - * @param min 最小长度,负数自动识别为0 - * @param max 最大长度,0或负数表示不限制最大长度 + * @param min 最小长度,负数自动识别为0 + * @param max 最大长度,0或负数表示不限制最大长度 * @param errorMsg 验证错误的信息 * @throws InstrumentException 验证异常 */ @@ -281,7 +281,7 @@ public static void validateGeneral(String value, int min, int max, String errorM * 验证是否为给定最小长度的英文字母 、数字和下划线 * * @param value 值 - * @param min 最小长度,负数自动识别为0 + * @param min 最小长度,负数自动识别为0 * @return 是否为给定最小长度的英文字母 、数字和下划线 */ public static boolean isGeneral(String value, int min) { @@ -292,7 +292,7 @@ public static boolean isGeneral(String value, int min) { * 验证是否为给定最小长度的英文字母 、数字和下划线 * * @param value 值 - * @param min 最小长度,负数自动识别为0 + * @param min 最小长度,负数自动识别为0 * @param errorMsg 验证错误的信息 * @throws InstrumentException 验证异常 */ @@ -301,10 +301,10 @@ public static void validateGeneral(String value, int min, String errorMsg) throw } /** - * 判断字符串是否全部为字母组成,包括大写和小写字母和汉字 + * 判断字符串是否全部为字母组成,包括大写和小写字母和汉字 * * @param value 值 - * @return 是否全部为字母组成,包括大写和小写字母和汉字 + * @return 是否全部为字母组成, 包括大写和小写字母和汉字 * @since 3.3.0 */ public static boolean isLetter(String value) { @@ -317,7 +317,7 @@ public boolean match(Character t) { } /** - * 验证是否全部为字母组成,包括大写和小写字母和汉字 + * 验证是否全部为字母组成,包括大写和小写字母和汉字 * * @param value 表单值 * @param errorMsg 验证错误的信息 diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/Weighing.java b/bus-core/src/main/java/org/aoju/bus/core/lang/Weighing.java index fdb47a56a2..de154ece57 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/Weighing.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/Weighing.java @@ -35,13 +35,13 @@ /** * 权重随机算法实现 *

- * 平时,经常会遇到权重随机算法,从不同权重的N个元素中随机选择一个,并使得总体选择结果是按照权重分布的。如广告投放、负载均衡等。 + * 平时,经常会遇到权重随机算法,从不同权重的N个元素中随机选择一个,并使得总体选择结果是按照权重分布的 如广告投放、负载均衡等 *

*

- * 如有4个元素A、B、C、D,权重分别为1、2、3、4,随机结果中A:B:C:D的比例要为1:2:3:4。 + * 如有4个元素A、B、C、D,权重分别为1、2、3、4,随机结果中A:B:C:D的比例要为1:2:3:4 *

- * 总体思路:累加每个元素的权重A(1)-B(3)-C(6)-D(10),则4个元素的的权重管辖区间分别为[0,1)、[1,3)、[3,6)、[6,10)。 - * 然后随机出一个[0,10)之间的随机数。落在哪个区间,则该区间之后的元素即为按权重命中的元素。 + * 总体思路:累加每个元素的权重A(1)-B(3)-C(6)-D(10),则4个元素的的权重管辖区间分别为[0,1)、[1,3)、[3,6)、[6,10) + * 然后随机出一个[0,10)之间的随机数 落在哪个区间,则该区间之后的元素即为按权重命中的元素 * * @param 权重随机获取的对象类型 * @author Kimi Liu diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/caller/Caller.java b/bus-core/src/main/java/org/aoju/bus/core/lang/caller/Caller.java index 9497826217..4485a56d20 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/caller/Caller.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/caller/Caller.java @@ -50,7 +50,7 @@ public interface Caller { Class getCallers(); /** - * 获得调用者,指定第几级调用者 调用者层级关系: + * 获得调用者,指定第几级调用者 调用者层级关系: * *
      * 0 {@link CallerUtils}
@@ -59,7 +59,7 @@ public interface Caller {
      * ...
      * 
* - * @param depth 层级。0表示{@link CallerUtils}本身,1表示调用{@link CallerUtils}的类,2表示调用者的调用者,依次类推 + * @param depth 层级 0表示{@link CallerUtils}本身,1表示调用{@link CallerUtils}的类,2表示调用者的调用者,依次类推 * @return 第几级调用者 */ Class getCaller(int depth); diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/caller/StackTraceCaller.java b/bus-core/src/main/java/org/aoju/bus/core/lang/caller/StackTraceCaller.java index 0308511e5d..a4241d33db 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/caller/StackTraceCaller.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/caller/StackTraceCaller.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.lang.exception.InstrumentException; /** - * 通过StackTrace方式获取调用者。此方式效率最低,不推荐使用 + * 通过StackTrace方式获取调用者 此方式效率最低,不推荐使用 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/copier/Duplicate.java b/bus-core/src/main/java/org/aoju/bus/core/lang/copier/Duplicate.java index 1d60942491..59a8ce3387 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/copier/Duplicate.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/copier/Duplicate.java @@ -28,10 +28,10 @@ /** * 复制器抽象类 - * 抽象复制器抽象了一个对象复制到另一个对象,通过实现{@link #copy()}方法实现复制逻辑。 + * 抽象复制器抽象了一个对象复制到另一个对象,通过实现{@link #copy()}方法实现复制逻辑 * * @param 拷贝的对象 - * @param 本类的类型。用于set方法返回本对象,方便流式编程 + * @param 本类的类型 用于set方法返回本对象,方便流式编程 * @author Kimi Liu * @version 5.2.2 * @since JDK 1.8+ @@ -47,7 +47,7 @@ public abstract class Duplicate> implements Copier< */ protected T dest; /** - * 拷贝过滤器,可以过滤掉不需要拷贝的源 + * 拷贝过滤器,可以过滤掉不需要拷贝的源 */ protected Filter copyFilter; diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/exception/UncheckedException.java b/bus-core/src/main/java/org/aoju/bus/core/lang/exception/UncheckedException.java index b4410ec476..00632eb8f7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/exception/UncheckedException.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/exception/UncheckedException.java @@ -53,7 +53,7 @@ protected UncheckedException() { } /** - * 将抛出对象包裹成运行时异常,并增加自己的描述 + * 将抛出对象包裹成运行时异常,并增加自己的描述 * * @param message 打印信息 */ @@ -62,7 +62,7 @@ protected UncheckedException(String message) { } /** - * 将抛出对象包裹成运行时异常,并增加自己的描述 + * 将抛出对象包裹成运行时异常,并增加自己的描述 * * @param cause 抛出对象 */ @@ -71,7 +71,7 @@ protected UncheckedException(Throwable cause) { } /** - * 将抛出对象包裹成运行时异常,并增加自己的描述 + * 将抛出对象包裹成运行时异常,并增加自己的描述 * * @param message 打印信息 * @param cause 抛出对象 @@ -81,7 +81,7 @@ protected UncheckedException(String message, Throwable cause) { } /** - * 将抛出对象包裹成运行时异常,并增加自己的描述 + * 将抛出对象包裹成运行时异常,并增加自己的描述 * * @param errcode 错误编码 * @param errmsg 错误提示 @@ -93,7 +93,7 @@ protected UncheckedException(String errcode, String errmsg) { } /** - * 根据格式化字符串,生成运行时异常 + * 根据格式化字符串,生成运行时异常 * * @param format 格式 * @param args 参数 @@ -103,7 +103,7 @@ protected UncheckedException(String format, Object... args) { } /** - * 将抛出对象包裹成运行时异常,并增加自己的描述 + * 将抛出对象包裹成运行时异常,并增加自己的描述 * * @param e 抛出对象 * @param fmt 格式 diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableBool.java b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableBool.java index 267649f64b..c3bee5aa8e 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableBool.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableBool.java @@ -36,7 +36,7 @@ public class MutableBool implements Comparable, Mutable { private boolean value; /** - * 构造,默认值0 + * 构造,默认值0 */ public MutableBool() { super(); @@ -91,7 +91,7 @@ public void set(final Boolean value) { * * * @param obj 比对的对象 - * @return 相同返回true,否则 false + * @return 相同返回true,否则 false */ @Override public boolean equals(final Object obj) { @@ -110,7 +110,7 @@ public int hashCode() { * 比较 * * @param other 其它 {@link MutableBool} 对象 - * @return x==y返回0,x<y返回-1,x>y返回1 + * @return x==y返回0,x<y返回-1,x>y返回1 */ @Override public int compareTo(final MutableBool other) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableByte.java b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableByte.java index 39a739617e..027da082cd 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableByte.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableByte.java @@ -41,7 +41,7 @@ public class MutableByte extends Number implements Comparable, Muta private byte value; /** - * 构造,默认值0 + * 构造,默认值0 */ public MutableByte() { super(); @@ -130,7 +130,7 @@ public MutableByte add(final byte operand) { /** * 增加值 * - * @param operand 被增加的值,非空 + * @param operand 被增加的值,非空 * @return this * @throws NullPointerException if the object is null */ @@ -153,7 +153,7 @@ public MutableByte subtract(final byte operand) { /** * 减去值 * - * @param operand 被减的值,非空 + * @param operand 被减的值,非空 * @return this * @throws NullPointerException if the object is null */ @@ -196,7 +196,7 @@ public double doubleValue() { * * * @param obj 比对的对象 - * @return 相同返回true,否则 false + * @return 相同返回true,否则 false */ @Override public boolean equals(final Object obj) { @@ -215,7 +215,7 @@ public int hashCode() { * 比较 * * @param other 其它 {@link MutableByte} 对象 - * @return x==y返回0,x<y返回-1,x>y返回1 + * @return x==y返回0,x<y返回-1,x>y返回1 */ @Override public int compareTo(final MutableByte other) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableDouble.java b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableDouble.java index 1d0c4f68f9..0148f26694 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableDouble.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableDouble.java @@ -41,7 +41,7 @@ public class MutableDouble extends Number implements Comparable, private double value; /** - * 构造,默认值0 + * 构造,默认值0 */ public MutableDouble() { super(); @@ -130,7 +130,7 @@ public MutableDouble add(final double operand) { /** * 增加值 * - * @param operand 被增加的值,非空 + * @param operand 被增加的值,非空 * @return this */ public MutableDouble add(final Number operand) { @@ -152,7 +152,7 @@ public MutableDouble subtract(final double operand) { /** * 减去值 * - * @param operand 被减的值,非空 + * @param operand 被减的值,非空 * @return this */ public MutableDouble subtract(final Number operand) { @@ -189,7 +189,7 @@ public double doubleValue() { * * * @param obj 比对的对象 - * @return 相同返回true,否则 false + * @return 相同返回true,否则 false */ @Override public boolean equals(final Object obj) { @@ -209,7 +209,7 @@ public int hashCode() { * 比较 * * @param other 其它 {@link MutableDouble} 对象 - * @return x==y返回0,x<y返回-1,x>y返回1 + * @return x==y返回0,x<y返回-1,x>y返回1 */ @Override public int compareTo(final MutableDouble other) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableFloat.java b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableFloat.java index 625aef6cc2..9fa8d2a201 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableFloat.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableFloat.java @@ -41,7 +41,7 @@ public class MutableFloat extends Number implements Comparable, Mu private float value; /** - * 构造,默认值0 + * 构造,默认值0 */ public MutableFloat() { super(); @@ -130,7 +130,7 @@ public MutableFloat add(final float operand) { /** * 增加值 * - * @param operand 被增加的值,非空 + * @param operand 被增加的值,非空 * @return this * @throws NullPointerException if the object is null */ @@ -153,7 +153,7 @@ public MutableFloat subtract(final float operand) { /** * 减去值 * - * @param operand 被减的值,非空 + * @param operand 被减的值,非空 * @return this * @throws NullPointerException if the object is null */ @@ -191,7 +191,7 @@ public double doubleValue() { * * * @param obj 比对的对象 - * @return 相同返回true,否则 false + * @return 相同返回true,否则 false */ @Override public boolean equals(final Object obj) { @@ -210,7 +210,7 @@ public int hashCode() { * 比较 * * @param other 其它 {@link MutableFloat} 对象 - * @return x==y返回0,x<y返回-1,x>y返回1 + * @return x==y返回0,x<y返回-1,x>y返回1 */ @Override public int compareTo(final MutableFloat other) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableInt.java b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableInt.java index eda1a9833a..3ad5870ded 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableInt.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableInt.java @@ -41,7 +41,7 @@ public class MutableInt extends Number implements Comparable, Mutabl private int value; /** - * 构造,默认值0 + * 构造,默认值0 */ public MutableInt() { super(); @@ -130,7 +130,7 @@ public MutableInt add(final int operand) { /** * 增加值 * - * @param operand 被增加的值,非空 + * @param operand 被增加的值,非空 * @return this * @throws NullPointerException if the object is null */ @@ -153,7 +153,7 @@ public MutableInt subtract(final int operand) { /** * 减去值 * - * @param operand 被减的值,非空 + * @param operand 被减的值,非空 * @return this * @throws NullPointerException if the object is null */ @@ -191,7 +191,7 @@ public double doubleValue() { * * * @param obj 比对的对象 - * @return 相同返回true,否则 false + * @return 相同返回true,否则 false */ @Override public boolean equals(final Object obj) { @@ -210,7 +210,7 @@ public int hashCode() { * 比较 * * @param other 其它 {@link MutableInt} 对象 - * @return x==y返回0,x<y返回-1,x>y返回1 + * @return x==y返回0,x<y返回-1,x>y返回1 */ @Override public int compareTo(final MutableInt other) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableLong.java b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableLong.java index a4e02e5bfd..9b278e779e 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableLong.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableLong.java @@ -40,7 +40,7 @@ public class MutableLong extends Number implements Comparable, Muta private long value; /** - * 构造,默认值0 + * 构造,默认值0 */ public MutableLong() { super(); @@ -129,7 +129,7 @@ public MutableLong add(final long operand) { /** * 增加值 * - * @param operand 被增加的值,非空 + * @param operand 被增加的值,非空 * @return this * @throws NullPointerException if the object is null */ @@ -152,7 +152,7 @@ public MutableLong subtract(final long operand) { /** * 减去值 * - * @param operand 被减的值,非空 + * @param operand 被减的值,非空 * @return this * @throws NullPointerException if the object is null */ @@ -190,7 +190,7 @@ public double doubleValue() { * * * @param obj 比对的对象 - * @return 相同返回true,否则 false + * @return 相同返回true,否则 false */ @Override public boolean equals(final Object obj) { @@ -209,7 +209,7 @@ public int hashCode() { * 比较 * * @param other 其它 {@link MutableLong} 对象 - * @return x==y返回0,x<y返回-1,x>y返回1 + * @return x==y返回0,x<y返回-1,x>y返回1 */ @Override public int compareTo(final MutableLong other) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableObject.java b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableObject.java index 5e88d5346b..64b74d8874 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableObject.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableObject.java @@ -40,7 +40,7 @@ public class MutableObject implements Mutable, Serializable { private T value; /** - * 构造,空值 + * 构造,空值 */ public MutableObject() { super(); diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableShort.java b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableShort.java index 95ce86cbc4..dd2b4847c0 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableShort.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/mutable/MutableShort.java @@ -41,7 +41,7 @@ public class MutableShort extends Number implements Comparable, Mu private short value; /** - * 构造,默认值0 + * 构造,默认值0 */ public MutableShort() { super(); @@ -130,7 +130,7 @@ public MutableShort add(final short operand) { /** * 增加值 * - * @param operand 被增加的值,非空 + * @param operand 被增加的值,非空 * @return this * @throws NullPointerException if the object is null */ @@ -153,7 +153,7 @@ public MutableShort subtract(final short operand) { /** * 减去值 * - * @param operand 被减的值,非空 + * @param operand 被减的值,非空 * @return this * @throws NullPointerException if the object is null */ @@ -196,7 +196,7 @@ public double doubleValue() { * * * @param obj 比对的对象 - * @return 相同返回true,否则 false + * @return 相同返回true,否则 false */ @Override public boolean equals(final Object obj) { @@ -215,7 +215,7 @@ public int hashCode() { * 比较 * * @param other 其它 {@link MutableShort} 对象 - * @return x==y返回0,x<y返回-1,x>y返回1 + * @return x==y返回0,x<y返回-1,x>y返回1 */ @Override public int compareTo(final MutableShort other) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/tuple/Pair.java b/bus-core/src/main/java/org/aoju/bus/core/lang/tuple/Pair.java index 1c4798f429..a68bb506f9 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/tuple/Pair.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/tuple/Pair.java @@ -32,12 +32,12 @@ /** * 由两个元素组成 *

- * 这个类是一个定义基本API的抽象实现。 - * 它表示元素为“left”和“right”。它还实现了 - * {@code Map.Entry}接口,其中键为'left',值为'right'. - * 子类实现可以是可变的,也可以是不可变的。 - * 但是,对可能存储的存储对象的类型没有限制。 - * 如果可变对象存储在对中,那么对本身就会有效地变成可变的。 + * 这个类是一个定义基本API的抽象实现 + * 它表示元素为“left”和“right” 它还实现了 + * {@code Map.Entry}接口,其中键为'left',值为'right'. + * 子类实现可以是可变的,也可以是不可变的 + * 但是,对可能存储的存储对象的类型没有限制 + * 如果可变对象存储在对中,那么对本身就会有效地变成可变的 * * @param the left element type * @param the right element type diff --git a/bus-core/src/main/java/org/aoju/bus/core/lang/tuple/Triple.java b/bus-core/src/main/java/org/aoju/bus/core/lang/tuple/Triple.java index 8c9b35267c..88401654d3 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/lang/tuple/Triple.java +++ b/bus-core/src/main/java/org/aoju/bus/core/lang/tuple/Triple.java @@ -30,11 +30,11 @@ /** * 由三个元素组成的三元组 - * 这个类是一个定义基本API的抽象实现。 + * 这个类是一个定义基本API的抽象实现 * 表示元素为'left'、'middle'和'right'. - * 子类实现可以是可变的,也可以是不可变的。 - * 但是,对可能存储的存储对象的类型没有限制。 - * 如果可变对象存储在三元组中,那么三元组本身就会变成可变的。 + * 子类实现可以是可变的,也可以是不可变的 + * 但是,对可能存储的存储对象的类型没有限制 + * 如果可变对象存储在三元组中,那么三元组本身就会变成可变的 * * @param the left element type * @param the middle element type diff --git a/bus-core/src/main/java/org/aoju/bus/core/loader/AllFilter.java b/bus-core/src/main/java/org/aoju/bus/core/loader/AllFilter.java index 4333413bf7..844b5a2e14 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/loader/AllFilter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/loader/AllFilter.java @@ -27,9 +27,9 @@ import java.util.Collection; /** - * ALL逻辑复合过滤器,即所有过滤器都满足的时候才满足, - * 只要有一个过滤器不满足就立刻返回不满足, - * 如果没有过滤器的时候则认为所有过滤器都满足。 + * ALL逻辑复合过滤器,即所有过滤器都满足的时候才满足, + * 只要有一个过滤器不满足就立刻返回不满足, + * 如果没有过滤器的时候则认为所有过滤器都满足 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/loader/AnyFilter.java b/bus-core/src/main/java/org/aoju/bus/core/loader/AnyFilter.java index 934c1d7bdd..f0a24c5927 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/loader/AnyFilter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/loader/AnyFilter.java @@ -27,7 +27,7 @@ import java.util.Collection; /** - * ANY逻辑复合过滤器,即任意一个过滤器满足时就满足,当没有过滤器的时候则认为没有过滤器满足,也就是不满足。 + * ANY逻辑复合过滤器,即任意一个过滤器满足时就满足,当没有过滤器的时候则认为没有过滤器满足,也就是不满足 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/loader/Filter.java b/bus-core/src/main/java/org/aoju/bus/core/loader/Filter.java index e8f399a9b9..05ce878104 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/loader/Filter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/loader/Filter.java @@ -37,7 +37,7 @@ public interface Filter { /** * 过滤资源 * - * @param name 资源名称,即相对路径 + * @param name 资源名称,即相对路径 * @param url 资源URL地址 * @return true: 加载 false: 不加载 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/loader/JarLoaders.java b/bus-core/src/main/java/org/aoju/bus/core/loader/JarLoaders.java index 64a846e431..976911ccad 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/loader/JarLoaders.java +++ b/bus-core/src/main/java/org/aoju/bus/core/loader/JarLoaders.java @@ -151,7 +151,7 @@ private static boolean isJarFile(File file) { } /** - * 加载Jar文件,或者加载目录 + * 加载Jar文件,或者加载目录 * * @param jarFile jar文件或者jar文件所在目录 * @return this @@ -175,7 +175,7 @@ public void addURL(URL url) { /** * 增加class所在目录或文件 - * 如果为目录,此目录用于搜索class文件,如果为文件,需为jar文件 + * 如果为目录,此目录用于搜索class文件,如果为文件,需为jar文件 * * @param dir 目录 * @return the jarClassLoader diff --git a/bus-core/src/main/java/org/aoju/bus/core/loader/Loader.java b/bus-core/src/main/java/org/aoju/bus/core/loader/Loader.java index b6040dca57..5905fb35af 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/loader/Loader.java +++ b/bus-core/src/main/java/org/aoju/bus/core/loader/Loader.java @@ -29,9 +29,9 @@ import java.util.Enumeration; /** - * 资源加载器,充分采用惰性加载的逻辑, + * 资源加载器,充分采用惰性加载的逻辑, * 让资源的加载延后到{@link Enumeration#hasMoreElements()} - * 调用时,避免无用的提前全部预加载。 + * 调用时,避免无用的提前全部预加载 * * @author Kimi Liu * @version 5.2.2 @@ -40,9 +40,9 @@ public interface Loader { /** - * 加载指定路径的所有资源,等效于Loader.load(path, false, Filters.ALWAYS)的调用。 - * 通常情况下不递归加载,但是子类可以改变此方法的行为, - * 例如ANT风格路径的资源加载器可以根据传入表达式来判断是否递归加载。 + * 加载指定路径的所有资源,等效于Loader.load(path, false, Filters.ALWAYS)的调用 + * 通常情况下不递归加载,但是子类可以改变此方法的行为, + * 例如ANT风格路径的资源加载器可以根据传入表达式来判断是否递归加载 * * @param path 资源路径 * @return 资源对象 @@ -51,7 +51,7 @@ public interface Loader { Enumeration load(String path) throws IOException; /** - * 加载指定路径的所有资源,等效于Loader.load(path, recursively, Filters.ALWAYS)的调用。 + * 加载指定路径的所有资源,等效于Loader.load(path, recursively, Filters.ALWAYS)的调用 * * @param path 资源路径 * @param recursively 递归加载 @@ -61,7 +61,7 @@ public interface Loader { Enumeration load(String path, boolean recursively) throws IOException; /** - * 加载指定路径的所有满足过滤条件的资源,等效于Loader.load(path, true, boot)的调用。 + * 加载指定路径的所有满足过滤条件的资源,等效于Loader.load(path, true, boot)的调用 * * @param path 资源路径 * @param filter 过滤器 @@ -71,7 +71,7 @@ public interface Loader { Enumeration load(String path, Filter filter) throws IOException; /** - * 加载指定路径的所有满足过滤条件的资源。 + * 加载指定路径的所有满足过滤条件的资源 * * @param path 资源路径 * @param recursively 递归加载 diff --git a/bus-core/src/main/java/org/aoju/bus/core/loader/Loaders.java b/bus-core/src/main/java/org/aoju/bus/core/loader/Loaders.java index 5c665145b7..288aeb257d 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/loader/Loaders.java +++ b/bus-core/src/main/java/org/aoju/bus/core/loader/Loaders.java @@ -38,12 +38,12 @@ public abstract class Loaders { /** - * 创建 classpath 资源加载器,也就是对{@link ClassLoader#getResources(String)}的增强封装。 - * 默认采用 {@link Thread#currentThread()}的{@link Thread#getContextClassLoader()},作为ClassLoader, + * 创建 classpath 资源加载器,也就是对{@link ClassLoader#getResources(String)}的增强封装 + * 默认采用 {@link Thread#currentThread()}的{@link Thread#getContextClassLoader()},作为ClassLoader, * 如果当前线程的上下文类加载器为{@code null} 则采用{@link ClassLoader#getSystemClassLoader()}. * 示例: - *

1. Loaders.std().load("org/aoju/bus/core/loader"); 加载classpath中"org/aoju/bus/core/loader"目录下的所有资源,但不包括子目录。

- *

2. Loaders.std().load("org/", true); 加载classpath中"io/"目录下的所有资源,而且包括子目录。

+ *

1. Loaders.std().load("org/aoju/bus/core/loader"); 加载classpath中"org/aoju/bus/core/loader"目录下的所有资源,但不包括子目录

+ *

2. Loaders.std().load("org/", true); 加载classpath中"io/"目录下的所有资源,而且包括子目录

* * @return classpath 资源加载器 */ @@ -52,10 +52,10 @@ public static Loader std() { } /** - * 创建 classpath 资源加载器,并且指定{@link ClassLoader} + * 创建 classpath 资源加载器,并且指定{@link ClassLoader} * 示例: - *

1. Loaders.std().load("org/aoju/bus/core/loader"); 加载classpath中"org/aoju/bus/core/loader"目录下的所有资源,但不包括子目录。

- *

2. Loaders.std().load("org/", true); 加载classpath中"org/"目录下的所有资源,而且包括子目录。

+ *

1. Loaders.std().load("org/aoju/bus/core/loader"); 加载classpath中"org/aoju/bus/core/loader"目录下的所有资源,但不包括子目录

+ *

2. Loaders.std().load("org/", true); 加载classpath中"org/"目录下的所有资源,而且包括子目录

* * @param classLoader 加载器 * @return classpath 资源加载器 @@ -65,11 +65,11 @@ public static Loader std(ClassLoader classLoader) { } /** - * 创建按包名来加载的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, - * 在这个创建方法中,实际委派给{@link Loaders#std()}资源加载器。 - * 示例:在{@link Loaders#std()}创建的资源加载器中加载类资源路径表达实际上不太直观,往往采用包名的方式更清晰易懂 - *

1. Loaders.pkg().load("io.loadkit"); 加载classpath中"io.loadkit"包下的所有资源,但不包括子包。

- *

2. Loaders.pkg().load("io", true); 加载classpath中"io"包下的所有资源,而且包括子子包。

+ * 创建按包名来加载的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, + * 在这个创建方法中,实际委派给{@link Loaders#std()}资源加载器 + * 示例:在{@link Loaders#std()}创建的资源加载器中加载类资源路径表达实际上不太直观,往往采用包名的方式更清晰易懂 + *

1. Loaders.pkg().load("io.loadkit"); 加载classpath中"io.loadkit"包下的所有资源,但不包括子包

+ *

2. Loaders.pkg().load("io", true); 加载classpath中"io"包下的所有资源,而且包括子子包

* * @return 按包名来加载的资源加载器 */ @@ -78,11 +78,11 @@ public static Loader pkg() { } /** - * 创建按包名来加载的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, - * 在这个创建方法中,实际委派给{@link Loaders#std(ClassLoader)}资源加载器。 - * 示例:在{@link Loaders#std()}创建的资源加载器中加载类资源路径表达实际上不太直观,往往采用包名的方式更清晰易懂 - *

1. Loaders.pkg().load("org.aoju.bus.core.loader"); 加载classpath中"org.aoju.bus.core.loader"包下的所有资源,但不包括子包。

- *

2. Loaders.pkg().load("org", true); 加载classpath中"org"包下的所有资源,而且包括子子包。

+ * 创建按包名来加载的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, + * 在这个创建方法中,实际委派给{@link Loaders#std(ClassLoader)}资源加载器 + * 示例:在{@link Loaders#std()}创建的资源加载器中加载类资源路径表达实际上不太直观,往往采用包名的方式更清晰易懂 + *

1. Loaders.pkg().load("org.aoju.bus.core.loader"); 加载classpath中"org.aoju.bus.core.loader"包下的所有资源,但不包括子包

+ *

2. Loaders.pkg().load("org", true); 加载classpath中"org"包下的所有资源,而且包括子子包

* * @param classLoader 加载器 * @return 按包名来加载的资源加载器 @@ -92,12 +92,12 @@ public static Loader pkg(ClassLoader classLoader) { } /** - * 创建按包名来加载的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, - * 在这个创建方法中,实际委派给delegate资源加载器。 - * 通过包装一个实际资源加载器可以实现更灵活的加载方式,例如: - *

1. Loaders.pkg(Loaders.ant()).load("org.aoju.bus.core.loader.*"); 加载org.aoju.bus.core.loader包下的资源,但不递归加载子包。

- *

2. Loaders.pkg(Loaders.ant()).load("org.**"); 加载io包以及子包的资源,而且递归加载任意层次的子包。

- *

3. Loaders.pkg(Loaders.ant()).load("org.aoju.bus.core.load???.*"); 加载io包下以load开头并且跟着三个字符的子包的所有资源。

+ * 创建按包名来加载的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, + * 在这个创建方法中,实际委派给delegate资源加载器 + * 通过包装一个实际资源加载器可以实现更灵活的加载方式,例如: + *

1. Loaders.pkg(Loaders.ant()).load("org.aoju.bus.core.loader.*"); 加载org.aoju.bus.core.loader包下的资源,但不递归加载子包

+ *

2. Loaders.pkg(Loaders.ant()).load("org.**"); 加载io包以及子包的资源,而且递归加载任意层次的子包

+ *

3. Loaders.pkg(Loaders.ant()).load("org.aoju.bus.core.load???.*"); 加载io包下以load开头并且跟着三个字符的子包的所有资源

* * @param delegate 加载器 * @return 按包名来加载的资源加载器 @@ -107,11 +107,11 @@ public static Loader pkg(Loader delegate) { } /** - * 创建ANT风格路径表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, - * 在这个创建方法中,实际委派给{@link Loaders#std()}资源加载器。 + * 创建ANT风格路径表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, + * 在这个创建方法中,实际委派给{@link Loaders#std()}资源加载器 * 示例: - *

1. Loaders.ant().load("org/aoju/bus/core/loader/*"); 加载org/aoju/bus/core/loader/目录下的资源,但不包括子目录。

- *

2. Loaders.ant().load("io/**"); 加载io/目录下的资源以及递归加载所有子目录的资源。

+ *

1. Loaders.ant().load("org/aoju/bus/core/loader/*"); 加载org/aoju/bus/core/loader/目录下的资源,但不包括子目录

+ *

2. Loaders.ant().load("io/**"); 加载io/目录下的资源以及递归加载所有子目录的资源

*

3. Loaders.ant().load("org/aoju/bus/core/loader/*Loader.class"); 加载org/aoju/bus/core/loader/目录下以Loader.class结尾的资源

* * @return 按包名来加载的资源加载器 @@ -121,11 +121,11 @@ public static Loader ant() { } /** - * 创建ANT风格路径表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, - * 在这个创建方法中,实际委派给{@link Loaders#std(ClassLoader)}资源加载器。 + * 创建ANT风格路径表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, + * 在这个创建方法中,实际委派给{@link Loaders#std(ClassLoader)}资源加载器 * 示例: - *

1. Loaders.ant().load("org/aoju/bus/core/loader/*"); 加载org/aoju/bus/core/loader/目录下的资源,但不包括子目录。

- *

2. Loaders.ant().load("org/**"); 加载io/目录下的资源以及递归加载所有子目录的资源。

+ *

1. Loaders.ant().load("org/aoju/bus/core/loader/*"); 加载org/aoju/bus/core/loader/目录下的资源,但不包括子目录

+ *

2. Loaders.ant().load("org/**"); 加载io/目录下的资源以及递归加载所有子目录的资源

*

3. Loaders.ant().load("org/aoju/bus/core/loader/*Loader.class"); 加载org/aoju/bus/core/loader/目录下以Loader.class结尾的资源

* * @param classLoader 加载器 @@ -136,11 +136,11 @@ public static Loader ant(ClassLoader classLoader) { } /** - * 创建ANT风格路径表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, - * 在这个创建方法中,实际委派给delegate资源加载器。 + * 创建ANT风格路径表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, + * 在这个创建方法中,实际委派给delegate资源加载器 * 示例: - *

1. Loaders.ant().load("org/aoju/bus/core/loader/*"); 加载org/aoju/bus/core/loader/目录下的资源,但不包括子目录。

- *

2. Loaders.ant().load("org/**"); 加载io/目录下的资源以及递归加载所有子目录的资源。

+ *

1. Loaders.ant().load("org/aoju/bus/core/loader/*"); 加载org/aoju/bus/core/loader/目录下的资源,但不包括子目录

+ *

2. Loaders.ant().load("org/**"); 加载io/目录下的资源以及递归加载所有子目录的资源

*

3. Loaders.ant().load("org/aoju/bus/core/loader/*Loader.class"); 加载org/aoju/bus/core/loader/目录下以Loader.class结尾的资源

* * @param delegate 加载器 @@ -151,11 +151,11 @@ public static Loader ant(Loader delegate) { } /** - * 创建正则表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, - * 在这个创建方法中,实际委派给{@link Loaders#std()}资源加载器。 + * 创建正则表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, + * 在这个创建方法中,实际委派给{@link Loaders#std()}资源加载器 * 示例: - *

1. Loaders.regex().load("org/aoju/bus/core/loader/\\w+Loader.class"); 加载org/aoju/bus/core/loader/目录下以Loader.class结尾的资源。

- *

2. Loaders.regex().load("org/.*"); 加载io包下所有资源。

+ *

1. Loaders.regex().load("org/aoju/bus/core/loader/\\w+Loader.class"); 加载org/aoju/bus/core/loader/目录下以Loader.class结尾的资源

+ *

2. Loaders.regex().load("org/.*"); 加载io包下所有资源

* * @return 按包名来加载的资源加载器 */ @@ -164,11 +164,11 @@ public static Loader regex() { } /** - * 创建正则表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, - * 在这个创建方法中,实际委派给{@link Loaders#std(ClassLoader)}资源加载器。 + * 创建正则表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, + * 在这个创建方法中,实际委派给{@link Loaders#std(ClassLoader)}资源加载器 * 示例: - *

1. Loaders.regex().load("org/aoju/bus/core/loader/\\w+Loader.class"); 加载org/aoju/bus/core/loader/目录下以Loader.class结尾的资源。

- *

2. Loaders.regex().load("org/.*"); 加载io包下所有资源。

+ *

1. Loaders.regex().load("org/aoju/bus/core/loader/\\w+Loader.class"); 加载org/aoju/bus/core/loader/目录下以Loader.class结尾的资源

+ *

2. Loaders.regex().load("org/.*"); 加载io包下所有资源

* * @param classLoader 加载器 * @return 按包名来加载的资源加载器 @@ -178,11 +178,11 @@ public static Loader regex(ClassLoader classLoader) { } /** - * 创建正则表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, - * 在这个创建方法中,实际委派给delegate资源加载器。 + * 创建正则表达式的资源加载器,这是一个委派加载器,自身并没有资源加载逻辑而是委派给实际的资源加载器, + * 在这个创建方法中,实际委派给delegate资源加载器 * 示例: - *

1. Loaders.regex().load("org/aoju/bus/core/loader/\\w+Loader.class"); 加载org/aoju/bus/core/loader/目录下以Loader.class结尾的资源。

- *

2. Loaders.regex().load("org/.*"); 加载io包下所有资源。

+ *

1. Loaders.regex().load("org/aoju/bus/core/loader/\\w+Loader.class"); 加载org/aoju/bus/core/loader/目录下以Loader.class结尾的资源

+ *

2. Loaders.regex().load("org/.*"); 加载io包下所有资源

* * @param delegate 加载器 * @return 按包名来加载的资源加载器 diff --git a/bus-core/src/main/java/org/aoju/bus/core/loader/MixFilter.java b/bus-core/src/main/java/org/aoju/bus/core/loader/MixFilter.java index 08dd92f60e..0cc9884fe7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/loader/MixFilter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/loader/MixFilter.java @@ -29,7 +29,7 @@ import java.util.Set; /** - * 复合过滤器,实际上内部维护一个过滤器的{@link LinkedHashSet}集合,提供添加/删除以及链式拼接的方法来混合多个子过滤器,该过滤器的具体逻辑由子类拓展。 + * 复合过滤器,实际上内部维护一个过滤器的{@link LinkedHashSet}集合,提供添加/删除以及链式拼接的方法来混合多个子过滤器,该过滤器的具体逻辑由子类拓展 * * @author Kimi Liu * @version 5.2.2 @@ -68,8 +68,8 @@ public boolean remove(Filter filter) { } /** - * 支持采用链式调用的方式混合多个过滤器,其内部调用{@link MixFilter#add(Filter)}且返回this. - * 该方法设计成abstract其用意是强制子类将方法的返回值类型替换成自身类型。 + * 支持采用链式调用的方式混合多个过滤器,其内部调用{@link MixFilter#add(Filter)}且返回this. + * 该方法设计成abstract其用意是强制子类将方法的返回值类型替换成自身类型 * * @param filter 过滤器 * @return this diff --git a/bus-core/src/main/java/org/aoju/bus/core/loader/PatternLoader.java b/bus-core/src/main/java/org/aoju/bus/core/loader/PatternLoader.java index b98940ac44..ef84987bf7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/loader/PatternLoader.java +++ b/bus-core/src/main/java/org/aoju/bus/core/loader/PatternLoader.java @@ -42,10 +42,10 @@ protected PatternLoader(Loader delegate) { } /** - * 加载匹配模式表达式的所有资源,由于模式表达式中有可能表达了是否递归加载的含义, - * 所以缺省情况下recursively参数会被忽略,取而代之的是{@link PatternLoader#recursively(String)}的返回值, - * 如果字类实现的模式表达式并不能表达是否递归加载的含义,需要重写该方法以满足更多定制化的需求。 - * 另外当filter参数不为null时,由模式表达式推导出的过滤器将会和filter参数混合成一个{@link AllFilter}混合过滤器 + * 加载匹配模式表达式的所有资源,由于模式表达式中有可能表达了是否递归加载的含义, + * 所以缺省情况下recursively参数会被忽略,取而代之的是{@link PatternLoader#recursively(String)}的返回值, + * 如果字类实现的模式表达式并不能表达是否递归加载的含义,需要重写该方法以满足更多定制化的需求 + * 另外当filter参数不为null时,由模式表达式推导出的过滤器将会和filter参数混合成一个{@link AllFilter}混合过滤器 * * @param pattern 模式表达式 * @param recursively 递归加载 diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/CamelCaseLinkedMap.java b/bus-core/src/main/java/org/aoju/bus/core/map/CamelCaseLinkedMap.java index e7c968345b..c23cb88b75 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/CamelCaseLinkedMap.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/CamelCaseLinkedMap.java @@ -5,7 +5,7 @@ /** * 驼峰Key风格的LinkedHashMap - * 对KEY转换为驼峰,get("int_value")和get("intValue")获得的值相同,put进入的值也会被覆盖 + * 对KEY转换为驼峰,get("int_value")和get("intValue")获得的值相同,put进入的值也会被覆盖 * * @param 键类型 * @param 值类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/CamelCaseMap.java b/bus-core/src/main/java/org/aoju/bus/core/map/CamelCaseMap.java index 76cbd6a533..12d376e679 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/CamelCaseMap.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/CamelCaseMap.java @@ -7,7 +7,7 @@ /** * 驼峰Key风格的Map - * 对KEY转换为驼峰,get("int_value")和get("intValue")获得的值相同,put进入的值也会被覆盖 + * 对KEY转换为驼峰,get("int_value")和get("intValue")获得的值相同,put进入的值也会被覆盖 * * @param 键类型 * @param 值类型 @@ -64,7 +64,7 @@ public CamelCaseMap(int initialCapacity, float loadFactor) { } /** - * 将Key转为驼峰风格,如果key为字符串的话 + * 将Key转为驼峰风格,如果key为字符串的话 * * @param key KEY * @return 驼峰Key diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/CaseInsensitiveLinkedMap.java b/bus-core/src/main/java/org/aoju/bus/core/map/CaseInsensitiveLinkedMap.java index e0501941e8..da71b6adf7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/CaseInsensitiveLinkedMap.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/CaseInsensitiveLinkedMap.java @@ -5,7 +5,7 @@ /** * 忽略大小写的LinkedHashMap - * 对KEY忽略大小写,get("Value")和get("value")获得的值相同,put进入的值也会被覆盖 + * 对KEY忽略大小写,get("Value")和get("value")获得的值相同,put进入的值也会被覆盖 * * @param 键类型 * @param 值类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/CaseInsensitiveMap.java b/bus-core/src/main/java/org/aoju/bus/core/map/CaseInsensitiveMap.java index 1a94298e2c..4fdf5aa1e4 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/CaseInsensitiveMap.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/CaseInsensitiveMap.java @@ -5,7 +5,7 @@ /** * 忽略大小写的Map - * 对KEY忽略大小写,get("Value")和get("value")获得的值相同,put进入的值也会被覆盖 + * 对KEY忽略大小写,get("Value")和get("value")获得的值相同,put进入的值也会被覆盖 * * @param 键类型 * @param 值类型 @@ -59,7 +59,7 @@ public CaseInsensitiveMap(float loadFactor, Map m) { * @param loadFactor 加载因子 */ public CaseInsensitiveMap(int initialCapacity, float loadFactor) { - super(new HashMap(initialCapacity, loadFactor)); + super(new HashMap<>(initialCapacity, loadFactor)); } /** @@ -70,7 +70,7 @@ public CaseInsensitiveMap(int initialCapacity, float loadFactor) { */ @Override protected Object customKey(Object key) { - if (null != key && key instanceof CharSequence) { + if (key instanceof CharSequence) { key = key.toString().toLowerCase(); } return key; diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/CustomKeyMap.java b/bus-core/src/main/java/org/aoju/bus/core/map/CustomKeyMap.java index c5598d0a11..52f5c26de4 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/CustomKeyMap.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/CustomKeyMap.java @@ -3,7 +3,7 @@ import java.util.Map; /** - * 自定义键的Map,默认HashMap实现 + * 自定义键的Map,默认HashMap实现 * * @param 键类型 * @param 值类型 @@ -15,7 +15,7 @@ public abstract class CustomKeyMap extends MapWrapper { /** * 构造 - * 通过传入一个Map从而确定Map的类型,子类需创建一个空的Map,而非传入一个已有Map,否则值可能会被修改 + * 通过传入一个Map从而确定Map的类型,子类需创建一个空的Map,而非传入一个已有Map,否则值可能会被修改 * * @param m Map 被包装的Map * @since 3.1.9 diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/FixedLinkedHashMap.java b/bus-core/src/main/java/org/aoju/bus/core/map/FixedLinkedHashMap.java index 81463fa88a..5c83c396f2 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/FixedLinkedHashMap.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/FixedLinkedHashMap.java @@ -14,14 +14,14 @@ public class FixedLinkedHashMap extends LinkedHashMap { /** - * 容量,超过此容量自动删除末尾元素 + * 容量,超过此容量自动删除末尾元素 */ private int capacity; /** * 构造 * - * @param capacity 容量,实际初始容量比容量大1 + * @param capacity 容量,实际初始容量比容量大1 */ public FixedLinkedHashMap(int capacity) { super(capacity + 1, 1.0f, true); @@ -48,7 +48,7 @@ public void setCapacity(int capacity) { @Override protected boolean removeEldestEntry(java.util.Map.Entry eldest) { - //当链表元素大于容量时,移除最老(最久未被使用)的元素 + //当链表元素大于容量时,移除最老(最久未被使用)的元素 return size() > this.capacity; } diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/MapProxy.java b/bus-core/src/main/java/org/aoju/bus/core/map/MapProxy.java index e239af0c84..0805a428b7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/MapProxy.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/MapProxy.java @@ -29,7 +29,7 @@ /** - * Map代理,提供各种getXXX方法,并提供默认值支持 + * Map代理,提供各种getXXX方法,并提供默认值支持 * * @author Kimi Liu * @version 5.2.2 @@ -50,7 +50,7 @@ public MapProxy(Map map) { /** * 创建代理Map - * 此类对Map做一次包装,提供各种getXXX方法 + * 此类对Map做一次包装,提供各种getXXX方法 * * @param map 被代理的Map * @return {@link MapProxy} diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/MapWrapper.java b/bus-core/src/main/java/org/aoju/bus/core/map/MapWrapper.java index 96731c0219..0d385b81c9 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/MapWrapper.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/MapWrapper.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Map包装类,通过包装一个已有Map实现特定功能。例如自定义Key的规则或Value规则 + * Map包装类,通过包装一个已有Map实现特定功能 例如自定义Key的规则或Value规则 * * @param 键类型 * @param 值类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/multi/CollectionValueMap.java b/bus-core/src/main/java/org/aoju/bus/core/map/multi/CollectionValueMap.java index 6846c84d1b..12da04b1dc 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/multi/CollectionValueMap.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/multi/CollectionValueMap.java @@ -8,7 +8,7 @@ import java.util.Map; /** - * 值作为集合的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示 + * 值作为集合的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示 * * @param 键类型 * @param 值类型 @@ -71,7 +71,7 @@ public CollectionValueMap(int initialCapacity, float loadFactor) { /** * 放入Value - * 如果键对应值列表有值,加入,否则创建一个新列表后加入 + * 如果键对应值列表有值,加入,否则创建一个新列表后加入 * * @param key 键 * @param value 值 @@ -89,7 +89,7 @@ public void putValue(K key, V value) { * 获取值 * * @param key 键 - * @param index 第几个值的索引,越界返回null + * @param index 第几个值的索引,越界返回null * @return 值或null */ public V get(K key, int index) { @@ -99,7 +99,7 @@ public V get(K key, int index) { /** * 创建集合 - * 此方法用于创建在putValue后追加值所在的集合,子类实现此方法创建不同类型的集合 + * 此方法用于创建在putValue后追加值所在的集合,子类实现此方法创建不同类型的集合 * * @return {@link Collection} */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/multi/ListValueMap.java b/bus-core/src/main/java/org/aoju/bus/core/map/multi/ListValueMap.java index cc705cf416..f51e7ca4f7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/multi/ListValueMap.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/multi/ListValueMap.java @@ -3,7 +3,7 @@ import java.util.*; /** - * 值作为集合List的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示 + * 值作为集合List的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示 * * @param 键类型 * @param 值类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/map/multi/SetValueMap.java b/bus-core/src/main/java/org/aoju/bus/core/map/multi/SetValueMap.java index f99ba2cbb6..d5bdc4e6ae 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/map/multi/SetValueMap.java +++ b/bus-core/src/main/java/org/aoju/bus/core/map/multi/SetValueMap.java @@ -3,7 +3,7 @@ import java.util.*; /** - * 值作为集合Set(LinkedHashSet)的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示 + * 值作为集合Set(LinkedHashSet)的Map实现,通过调用putValue可以在相同key时加入多个值,多个值用集合表示 * * @param 键类型 * @param 值类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/math/Arrangement.java b/bus-core/src/main/java/org/aoju/bus/core/math/Arrangement.java index d750b0a59b..f12e5f2078 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/math/Arrangement.java +++ b/bus-core/src/main/java/org/aoju/bus/core/math/Arrangement.java @@ -51,7 +51,7 @@ public Arrangement(String[] datas) { } /** - * 计算排列数,即A(n, n) = n! + * 计算排列数,即A(n, n) = n! * * @param n 总数 * @return 排列数 @@ -61,7 +61,7 @@ public static long count(int n) { } /** - * 计算排列数,即A(n, m) = n!/(n-m)! + * 计算排列数,即A(n, m) = n!/(n-m)! * * @param n 总数 * @param m 选择的个数 @@ -75,7 +75,7 @@ public static long count(int n, int m) { } /** - * 计算排列总数,即A(n, 1) + A(n, 2) + A(n, 3)... + * 计算排列总数,即A(n, 1) + A(n, 2) + A(n, 3)... * * @param n 总数 * @return 排列数 @@ -110,7 +110,7 @@ public List select(int m) { } /** - * 排列所有组合,即A(n, 1) + A(n, 2) + A(n, 3)... + * 排列所有组合,即A(n, 1) + A(n, 2) + A(n, 3)... * * @return 全排列结果 */ @@ -126,12 +126,12 @@ public List selectAll() { * 排列选择 * * @param resultList 前面(resultIndex-1)个的排列结果 - * @param resultIndex 选择索引,从0开始 + * @param resultIndex 选择索引,从0开始 * @param result 最终结果 */ private void select(String[] resultList, int resultIndex, List result) { int resultLen = resultList.length; - if (resultIndex >= resultLen) { // 全部选择完时,输出排列结果 + if (resultIndex >= resultLen) { // 全部选择完时,输出排列结果 result.add(Arrays.copyOf(resultList, resultList.length)); return; } @@ -146,7 +146,7 @@ private void select(String[] resultList, int resultIndex, List result) break; } } - if (false == exists) { // 排列结果不存在该项,才可选择 + if (false == exists) { // 排列结果不存在该项,才可选择 resultList[resultIndex] = datas[i]; select(resultList, resultIndex + 1, result); } diff --git a/bus-core/src/main/java/org/aoju/bus/core/math/Combination.java b/bus-core/src/main/java/org/aoju/bus/core/math/Combination.java index 0c57efb8a1..24692f2063 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/math/Combination.java +++ b/bus-core/src/main/java/org/aoju/bus/core/math/Combination.java @@ -30,7 +30,7 @@ import java.util.List; /** - * 组合,即C(n, m) + * 组合,即C(n, m) * 排列组合相关类 * * @author Kimi Liu @@ -42,7 +42,7 @@ public class Combination { private String[] datas; /** - * 组合,即C(n, m) + * 组合,即C(n, m) * 排列组合相关类 * * @param datas 用于组合的数据 @@ -52,7 +52,7 @@ public Combination(String[] datas) { } /** - * 计算组合数,即C(n, m) = n!/((n-m)! * m!) + * 计算组合数,即C(n, m) = n!/((n-m)! * m!) * * @param n 总数 * @param m 选择的个数 @@ -69,7 +69,7 @@ public static long count(int n, int m) { } /** - * 计算组合总数,即C(n, 1) + C(n, 2) + C(n, 3)... + * 计算组合总数,即C(n, 1) + C(n, 2) + C(n, 3)... * * @param n 总数 * @return 组合数 @@ -112,13 +112,13 @@ public List selectAll() { * * @param dataIndex 待选开始索引 * @param resultList 前面(resultIndex-1)个的组合结果 - * @param resultIndex 选择索引,从0开始 + * @param resultIndex 选择索引,从0开始 * @param result 待选列表 */ private void select(int dataIndex, String[] resultList, int resultIndex, List result) { int resultLen = resultList.length; int resultCount = resultIndex + 1; - if (resultCount > resultLen) { // 全部选择完时,输出组合结果 + if (resultCount > resultLen) { // 全部选择完时,输出组合结果 result.add(Arrays.copyOf(resultList, resultList.length)); return; } diff --git a/bus-core/src/main/java/org/aoju/bus/core/math/Money.java b/bus-core/src/main/java/org/aoju/bus/core/math/Money.java new file mode 100644 index 0000000000..f11445c8d3 --- /dev/null +++ b/bus-core/src/main/java/org/aoju/bus/core/math/Money.java @@ -0,0 +1,751 @@ +package org.aoju.bus.core.math; + +import org.aoju.bus.core.utils.StringUtils; + +import java.io.File; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Currency; + +/** + * 单币种货币类,处理货币算术、币种和取整 + * 货币类中封装了货币金额和币种目前金额在内部是long类型表示, + * 单位是所属币种的最小货币单位(对人民币是分) + * 目前,货币实现了以下主要功能: + *
    + *
  • 支持货币对象与double(float)/long(int)/String/BigDecimal之间相互转换 + *
  • 货币类在运算中提供与JDK中的BigDecimal类似的运算接口, + * BigDecimal的运算接口支持任意指定精度的运算功能,能够支持各种 + * 可能的财务规则 + *
  • 货币类在运算中也提供一组简单运算接口,使用这组运算接口,则在 + * 精度处理上使用缺省的处理规则 + *
  • 推荐使用Money,不建议直接使用BigDecimal的原因之一在于, + * 使用BigDecimal,同样金额和币种的货币使用BigDecimal存在多种可能 + * 的表示,例如:new BigDecimal("10.5")与new BigDecimal("10.50") + * 不相等,因为scale不等使得Money类,同样金额和币种的货币只有 + * 一种表示方式,new Money("10.5")和new Money("10.50")应该是相等的 + *
  • 不推荐直接使用BigDecimal的另一原因在于, BigDecimal是Immutable, + * 一旦创建就不可更改,对BigDecimal进行任意运算都会生成一个新的 + * BigDecimal对象,因此对于大批量统计的性能不够满意Money类是 + * mutable的,对大批量统计提供较好的支持 + *
  • 提供基本的格式化功能 + *
  • Money类中不包含与业务相关的统计功能和格式化功能业务相关的功能 + * 建议使用utility类来实现 + *
  • Money类实现了Serializable接口,支持作为远程调用的参数和返回值 + *
  • Money类实现了equals和hashCode方法 + *
+ * + * @author Kimi Liu + * @version 5.2.2 + * @since JDK 1.8+ + */ +public class Money implements Serializable, Comparable { + + /** + * 缺省的币种代码,为CNY(人民币) + */ + public static final String DEFAULT_CURRENCY_CODE = "CNY"; + /** + * 缺省的取整模式,为BigDecimal.ROUND_HALF_EVEN + * (四舍五入,当小数为0.5时,则取最近的偶数) + */ + public static final int DEFAULT_ROUNDING_MODE = BigDecimal.ROUND_HALF_EVEN; + private static final long serialVersionUID = -1004117971993390293L; + /** + * 一组可能的元/分换算比例 + * 此处,“分”是指货币的最小单位,“元”是货币的最常用单位, + * 不同的币种有不同的元/分换算比例,如人民币是100,而日元为1 + */ + private static final int[] centFactors = new int[]{1, 10, 100, 1000}; + + /** + * 金额,以分为单位 + */ + private long cent; + + /** + * 币种 + */ + private Currency currency; + + /** + * 缺省构造器 + * 创建一个具有缺省金额(0)和缺省币种的货币对象 + */ + public Money() { + this(0); + } + + /** + * 构造器 + * 创建一个具有金额yuancent分和缺省币种的货币对象 + * + * @param yuan 金额元数 + * @param cent 金额分数 + */ + public Money(long yuan, int cent) { + this(yuan, cent, Currency.getInstance(DEFAULT_CURRENCY_CODE)); + } + + /** + * 构造器 + * 创建一个具有金额yuancent分和指定币种的货币对象 + * + * @param yuan 金额元数 + * @param cent 金额分数 + * @param currency 币种 + */ + public Money(long yuan, int cent, Currency currency) { + this.currency = currency; + + this.cent = (yuan * getCentFactor()) + (cent % getCentFactor()); + } + + /** + * 构造器 + * 创建一个具有金额amount元和缺省币种的货币对象 + * + * @param amount 金额,以元为单位 + */ + public Money(String amount) { + this(amount, Currency.getInstance(DEFAULT_CURRENCY_CODE)); + } + + /** + * 构造器 + * 创建一个具有金额amount元和指定币种currency的货币对象 + * + * @param amount 金额,以元为单位 + * @param currency 币种 + */ + public Money(String amount, Currency currency) { + this(new BigDecimal(amount), currency); + } + + /** + * 构造器 + * 创建一个具有金额amount元和指定币种currency的货币对象 + * 如果金额不能转换为整数分,则使用指定的取整模式roundingMode取整 + * + * @param amount 金额,以元为单位 + * @param currency 币种 + * @param roundingMode 取整模式 + */ + public Money(String amount, Currency currency, int roundingMode) { + this(new BigDecimal(amount), currency, roundingMode); + } + + /** + * 构造器 + * 创建一个具有参数amount指定金额和缺省币种的货币对象 + * 如果金额不能转换为整数分,则使用四舍五入方式取整 + * 注意:由于double类型运算中存在误差,使用四舍五入方式取整的 + * 结果并不确定,因此,应尽量避免使用double类型创建货币类型 + * 例: + * + * assertEquals(999, Math.round(9.995 * 100)); + * assertEquals(1000, Math.round(999.5)); + * money = new Money((9.995)); + * assertEquals(999, money.getCent()); + * money = new Money(10.005); + * assertEquals(1001, money.getCent()); + * + * + * @param amount 金额,以元为单位 + */ + public Money(double amount) { + this(amount, Currency.getInstance(DEFAULT_CURRENCY_CODE)); + } + + /** + * 构造器 + * 创建一个具有金额amount和指定币种的货币对象 + * 如果金额不能转换为整数分,则使用四舍五入方式取整 + * 注意:由于double类型运算中存在误差,使用四舍五入方式取整的 + * 结果并不确定,因此,应尽量避免使用double类型创建货币类型 + * 例: + * + * assertEquals(999, Math.round(9.995 * 100)); + * assertEquals(1000, Math.round(999.5)); + * money = new Money((9.995)); + * assertEquals(999, money.getCent()); + * money = new Money(10.005); + * assertEquals(1001, money.getCent()); + * + * + * @param amount 金额,以元为单位 + * @param currency 币种 + */ + public Money(double amount, Currency currency) { + this.currency = currency; + this.cent = Math.round(amount * getCentFactor()); + } + + /** + * 构造器 + * 创建一个具有金额amount和缺省币种的货币对象 + * 如果金额不能转换为整数分,则使用缺省取整模式DEFAULT_ROUNDING_MODE取整 + * + * @param amount 金额,以元为单位 + */ + public Money(BigDecimal amount) { + this(amount, Currency.getInstance(DEFAULT_CURRENCY_CODE)); + } + + /** + * 构造器 + * 创建一个具有参数amount指定金额和缺省币种的货币对象 + * 如果金额不能转换为整数分,则使用指定的取整模式roundingMode取整 + * + * @param amount 金额,以元为单位 + * @param roundingMode 取整模式 + */ + public Money(BigDecimal amount, int roundingMode) { + this(amount, Currency.getInstance(DEFAULT_CURRENCY_CODE), roundingMode); + } + + /** + * 构造器 + * 创建一个具有金额amount和指定币种的货币对象 + * 如果金额不能转换为整数分,则使用缺省的取整模式DEFAULT_ROUNDING_MODE进行取整 + * + * @param amount 金额,以元为单位 + * @param currency 币种 + */ + public Money(BigDecimal amount, Currency currency) { + this(amount, currency, DEFAULT_ROUNDING_MODE); + } + + /** + * 构造器 + * 创建一个具有金额amount和指定币种的货币对象 + * 如果金额不能转换为整数分,则使用指定的取整模式roundingMode取整 + * + * @param amount 金额,以元为单位 + * @param currency 币种 + * @param roundingMode 取整模式 + */ + public Money(BigDecimal amount, Currency currency, int roundingMode) { + this.currency = currency; + this.cent = rounding(amount.movePointRight(currency.getDefaultFractionDigits()), + roundingMode); + } + + /** + * 获取本货币对象代表的金额数 + * + * @return 金额数, 以元为单位 + */ + public BigDecimal getAmount() { + return BigDecimal.valueOf(cent, currency.getDefaultFractionDigits()); + } + + /** + * 设置本货币对象代表的金额数 + * + * @param amount 金额数,以元为单位 + */ + public void setAmount(BigDecimal amount) { + if (amount != null) { + cent = rounding(amount.movePointRight(2), BigDecimal.ROUND_HALF_EVEN); + } + } + + /** + * 获取本货币对象代表的金额数 + * + * @return 金额数, 以分为单位 + */ + public long getCent() { + return cent; + } + + /** + * 设置货币的分值 + * + * @param cent 分值 + */ + public void setCent(long cent) { + this.cent = cent; + } + + /** + * 获取本货币对象代表的币种 + * + * @return 本货币对象所代表的币种 + */ + public Currency getCurrency() { + return currency; + } + + /** + * 获取本货币币种的元/分换算比率 + * + * @return 本货币币种的元/分换算比率 + */ + public int getCentFactor() { + return centFactors[currency.getDefaultFractionDigits()]; + } + + /** + * 判断本货币对象与另一对象是否相等 + * 货币对象与另一对象相等的充分必要条件是: + *
    + *
  • 另一对象也属货币对象类 + *
  • 金额相同 + *
  • 币种相同 + *
+ * + * @param other 待比较的另一对象 + * @return true表示相等,false表示不相等 + * @see java.lang.Object#equals(java.lang.Object) + */ + @Override + public boolean equals(Object other) { + return (other instanceof Money) && equals((Money) other); + } + + /** + * 判断本货币对象与另一货币对象是否相等 + * 货币对象与另一货币对象相等的充分必要条件是: + *
    + *
  • 金额相同 + *
  • 币种相同 + *
+ * + * @param other 待比较的另一货币对象 + * @return true表示相等,false表示不相等 + */ + public boolean equals(Money other) { + return currency.equals(other.currency) && (cent == other.cent); + } + + /** + * 计算本货币对象的杂凑值 + * + * @return 本货币对象的杂凑值 + * @see java.lang.Object#hashCode() + */ + @Override + public int hashCode() { + return (int) (cent ^ (cent >>> 32)); + } + + /** + * 货币比较 + * 比较本货币对象与另一货币对象的大小 + * 如果待比较的两个货币对象的币种不同,则抛出java.lang.IllegalArgumentException + * 如果本货币对象的金额少于待比较货币对象,则返回-1 + * 如果本货币对象的金额等于待比较货币对象,则返回0 + * 如果本货币对象的金额大于待比较货币对象,则返回1 + * + * @param other 另一对象 + * @return -1表示小于,0表示等于,1表示大于 + * @throws IllegalArgumentException 待比较货币对象与本货币对象的币种不同 + */ + @Override + public int compareTo(Money other) { + assertSameCurrencyAs(other); + return Long.compare(cent, other.cent); + } + + /** + * 货币比较 + * 判断本货币对象是否大于另一货币对象 + * 如果待比较的两个货币对象的币种不同,则抛出java.lang.IllegalArgumentException + * 如果本货币对象的金额大于待比较货币对象,则返回true,否则返回false + * + * @param other 另一对象 + * @return true表示大于, false表示不大于(小于等于) + * @throws IllegalArgumentException 待比较货币对象与本货币对象的币种不同 + */ + public boolean greaterThan(Money other) { + return compareTo(other) > 0; + } + + /** + * 货币加法 + * 如果两货币币种相同,则返回一个新的相同币种的货币对象,其金额为 + * 两货币对象金额之和,本货币对象的值不变 + * 如果两货币对象币种不同,抛出java.lang.IllegalArgumentException + * + * @param other 作为加数的货币对象 + * @return 相加后的结果 + * @throws IllegalArgumentException 如果本货币对象与另一货币对象币种不同 + */ + public Money add(Money other) { + assertSameCurrencyAs(other); + + return newMoneyWithSameCurrency(cent + other.cent); + } + + /** + * 货币累加 + * 如果两货币币种相同,则本货币对象的金额等于两货币对象金额之和,并返回本货币对象的引用 + * 如果两货币对象币种不同,抛出java.lang.IllegalArgumentException + * + * @param other 作为加数的货币对象 + * @return 累加后的本货币对象 + * @throws IllegalArgumentException 如果本货币对象与另一货币对象币种不同 + */ + public Money addTo(Money other) { + assertSameCurrencyAs(other); + + this.cent += other.cent; + + return this; + } + + /** + * 货币减法 + * 如果两货币币种相同,则返回一个新的相同币种的货币对象,其金额为 + * 本货币对象的金额减去参数货币对象的金额本货币对象的值不变 + * 如果两货币币种不同,抛出java.lang.IllegalArgumentException + * + * @param other 作为减数的货币对象 + * @return 相减后的结果 + * @throws IllegalArgumentException 如果本货币对象与另一货币对象币种不同 + */ + public Money subtract(Money other) { + assertSameCurrencyAs(other); + + return newMoneyWithSameCurrency(cent - other.cent); + } + + /** + * 货币累减 + * 如果两货币币种相同,则本货币对象的金额等于两货币对象金额之差,并返回本货币对象的引用 + * 如果两货币币种不同,抛出java.lang.IllegalArgumentException + * + * @param other 作为减数的货币对象 + * @return 累减后的本货币对象 + * @throws IllegalArgumentException 如果本货币对象与另一货币对象币种不同 + */ + public Money subtractFrom(Money other) { + assertSameCurrencyAs(other); + + this.cent -= other.cent; + + return this; + } + + /** + * 货币乘法 + * 返回一个新的货币对象,币种与本货币对象相同,金额为本货币对象的金额乘以乘数 + * 本货币对象的值不变 + * + * @param val 乘数 + * @return 乘法后的结果 + */ + public Money multiply(long val) { + return newMoneyWithSameCurrency(cent * val); + } + + /** + * 货币累乘 + * 本货币对象金额乘以乘数,并返回本货币对象 + * + * @param val 乘数 + * @return 累乘后的本货币对象 + */ + public Money multiplyBy(long val) { + this.cent *= val; + + return this; + } + + /** + * 货币乘法 + * 返回一个新的货币对象,币种与本货币对象相同,金额为本货币对象的金额乘以乘数 + * 本货币对象的值不变如果相乘后的金额不能转换为整数分,则四舍五入 + * + * @param val 乘数 + * @return 相乘后的结果 + */ + public Money multiply(double val) { + return newMoneyWithSameCurrency(Math.round(cent * val)); + } + + /** + * 货币累乘 + * 本货币对象金额乘以乘数,并返回本货币对象 + * 如果相乘后的金额不能转换为整数分,则使用四舍五入 + * + * @param val 乘数 + * @return 累乘后的本货币对象 + */ + public Money multiplyBy(double val) { + this.cent = Math.round(this.cent * val); + + return this; + } + + /** + * 货币乘法 + * 返回一个新的货币对象,币种与本货币对象相同,金额为本货币对象的金额乘以乘数 + * 本货币对象的值不变如果相乘后的金额不能转换为整数分,使用缺省的取整模式 + * DEFUALT_ROUNDING_MODE进行取整 + * + * @param val 乘数 + * @return 相乘后的结果 + */ + public Money multiply(BigDecimal val) { + return multiply(val, DEFAULT_ROUNDING_MODE); + } + + /** + * 货币累乘 + * 本货币对象金额乘以乘数,并返回本货币对象 + * 如果相乘后的金额不能转换为整数分,使用缺省的取整方式 + * DEFUALT_ROUNDING_MODE进行取整 + * + * @param val 乘数 + * @return 累乘后的结果 + */ + public Money multiplyBy(BigDecimal val) { + return multiplyBy(val, DEFAULT_ROUNDING_MODE); + } + + /** + * 货币乘法 + * 返回一个新的货币对象,币种与本货币对象相同,金额为本货币对象的金额乘以乘数 + * 本货币对象的值不变如果相乘后的金额不能转换为整数分,使用指定的取整方式 + * roundingMode进行取整 + * + * @param val 乘数 + * @param roundingMode 取整方式 + * @return 相乘后的结果 + */ + public Money multiply(BigDecimal val, int roundingMode) { + BigDecimal newCent = BigDecimal.valueOf(cent).multiply(val); + + return newMoneyWithSameCurrency(rounding(newCent, roundingMode)); + } + + /** + * 货币累乘 + * 本货币对象金额乘以乘数,并返回本货币对象 + * 如果相乘后的金额不能转换为整数分,使用指定的取整方式 + * roundingMode进行取整 + * + * @param val 乘数 + * @param roundingMode 取整方式 + * @return 累乘后的结果 + */ + public Money multiplyBy(BigDecimal val, int roundingMode) { + BigDecimal newCent = BigDecimal.valueOf(cent).multiply(val); + + this.cent = rounding(newCent, roundingMode); + + return this; + } + + /** + * 货币除法 + * 返回一个新的货币对象,币种与本货币对象相同,金额为本货币对象的金额除以除数 + * 本货币对象的值不变如果相除后的金额不能转换为整数分,使用四舍五入方式取整 + * + * @param val 除数 + * @return 相除后的结果 + */ + public Money divide(double val) { + return newMoneyWithSameCurrency(Math.round(cent / val)); + } + + /** + * 货币累除 + * 本货币对象金额除以除数,并返回本货币对象 + * 如果相除后的金额不能转换为整数分,使用四舍五入方式取整 + * + * @param val 除数 + * @return 累除后的结果 + */ + public Money divideBy(double val) { + this.cent = Math.round(this.cent / val); + + return this; + } + + /** + * 货币除法 + * 返回一个新的货币对象,币种与本货币对象相同,金额为本货币对象的金额除以除数 + * 本货币对象的值不变如果相除后的金额不能转换为整数分,使用缺省的取整模式 + * DEFAULT_ROUNDING_MODE进行取整 + * + * @param val 除数 + * @return 相除后的结果 + */ + public Money divide(BigDecimal val) { + return divide(val, DEFAULT_ROUNDING_MODE); + } + + /** + * 货币除法 + * 返回一个新的货币对象,币种与本货币对象相同,金额为本货币对象的金额除以除数 + * 本货币对象的值不变如果相除后的金额不能转换为整数分,使用指定的取整模式 + * roundingMode进行取整 + * + * @param val 除数 + * @param roundingMode 取整 + * @return 相除后的结果 + */ + public Money divide(BigDecimal val, int roundingMode) { + BigDecimal newCent = BigDecimal.valueOf(cent).divide(val, roundingMode); + + return newMoneyWithSameCurrency(newCent.longValue()); + } + + /** + * 货币累除 + * 本货币对象金额除以除数,并返回本货币对象 + * 如果相除后的金额不能转换为整数分,使用缺省的取整模式 + * DEFAULT_ROUNDING_MODE进行取整 + * + * @param val 除数 + * @return 累除后的结果 + */ + public Money divideBy(BigDecimal val) { + return divideBy(val, DEFAULT_ROUNDING_MODE); + } + + /** + * 货币累除 + * 本货币对象金额除以除数,并返回本货币对象 + * 如果相除后的金额不能转换为整数分,使用指定的取整模式 + * roundingMode进行取整 + * + * @param val 除数 + * @param roundingMode 模型 + * @return 累除后的结果 + */ + public Money divideBy(BigDecimal val, int roundingMode) { + BigDecimal newCent = BigDecimal.valueOf(cent).divide(val, roundingMode); + + this.cent = newCent.longValue(); + + return this; + } + + /** + * 货币分配 + * 将本货币对象尽可能平均分配成targets份 + * 如果不能平均分配尽,则将零头放到开始的若干份中分配 + * 运算能够确保不会丢失金额零头 + * + * @param targets 待分配的份数 + * @return 货币对象数组, 数组的长度与分配份数相同, 数组元素 + * 从大到小排列,所有货币对象的金额最多只相差1分 + */ + public Money[] allocate(int targets) { + Money[] results = new Money[targets]; + + Money lowResult = newMoneyWithSameCurrency(cent / targets); + Money highResult = newMoneyWithSameCurrency(lowResult.cent + 1); + + int remainder = (int) cent % targets; + + for (int i = 0; i < remainder; i++) { + results[i] = highResult; + } + + for (int i = remainder; i < targets; i++) { + results[i] = lowResult; + } + + return results; + } + + /** + * 货币分配 + * 将本货币对象按照规定的比例分配成若干份分配所剩的零头 + * 从第一份开始顺序分配分配运算确保不会丢失金额零头 + * + * @param ratios 分配比例数组,每一个比例是一个长整型,代表 + * 相对于总数的相对数 + * @return 货币对象数组, 数组的长度与分配比例数组的长度相同 + */ + public Money[] allocate(long[] ratios) { + Money[] results = new Money[ratios.length]; + + long total = 0; + + for (int i = 0; i < ratios.length; i++) { + total += ratios[i]; + } + + long remainder = cent; + + for (int i = 0; i < results.length; i++) { + results[i] = newMoneyWithSameCurrency((cent * ratios[i]) / total); + remainder -= results[i].cent; + } + + for (int i = 0; i < remainder; i++) { + results[i].cent++; + } + + return results; + } + + /** + * 生成本对象的缺省字符串表示 + */ + public String toString() { + return getAmount().toString(); + } + + /** + * 断言本货币对象与另一货币对象是否具有相同的币种 + * 如果本货币对象与另一货币对象具有相同的币种,则方法返回 + * 否则抛出运行时异常java.lang.IllegalArgumentException + * + * @param other 另一货币对象 + * @throws IllegalArgumentException 如果本货币对象与另一货币对象币种不同 + */ + protected void assertSameCurrencyAs(Money other) { + if (!currency.equals(other.currency)) { + throw new IllegalArgumentException("Money math currency mismatch."); + } + } + + /** + * 对BigDecimal型的值按指定取整方式取整 + * + * @param val 待取整的BigDecimal值 + * @param roundingMode 取整方式 + * @return 取整后的long型值 + */ + protected long rounding(BigDecimal val, int roundingMode) { + return val.setScale(0, roundingMode).longValue(); + } + + /** + * 创建一个币种相同,具有指定金额的货币对象 + * + * @param cent 金额,以分为单位 + * @return 一个新建的币种相同, 具有指定金额的货币对象 + */ + protected Money newMoneyWithSameCurrency(long cent) { + Money money = new Money(0, currency); + + money.cent = cent; + + return money; + } + + /** + * 生成本对象内部变量的字符串表示,用于调试 + * + * @return 本对象内部变量的字符串表示 + */ + public String dump() { + return StringUtils.builder() + .append("cent = ") + .append(this.cent) + .append(File.separatorChar) + .append("currency = ") + .append(this.currency) + .toString(); + } + +} \ No newline at end of file diff --git a/bus-core/src/main/java/org/aoju/bus/core/swing/ClipboardListener.java b/bus-core/src/main/java/org/aoju/bus/core/swing/ClipboardListener.java index 0523a036b8..88a6b29228 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/swing/ClipboardListener.java +++ b/bus-core/src/main/java/org/aoju/bus/core/swing/ClipboardListener.java @@ -5,7 +5,7 @@ /** * 剪贴板监听事件处理接口
- * 用户通过实现此接口,实现监听剪贴板内容变化 + * 用户通过实现此接口,实现监听剪贴板内容变化 * * @author Kimi Liu * @version 5.2.2 @@ -15,11 +15,11 @@ public interface ClipboardListener { /** * 剪贴板变动触发的事件方法
- * 在此事件中对剪贴板设置值无效,如若修改,需返回修改内容 + * 在此事件中对剪贴板设置值无效,如若修改,需返回修改内容 * * @param clipboard 剪贴板对象 * @param contents 内容 - * @return 如果对剪贴板内容做修改,则返回修改的内容,{@code null}表示保留原内容 + * @return 如果对剪贴板内容做修改, 则返回修改的内容,{@code null}表示保留原内容 */ Transferable onChange(Clipboard clipboard, Transferable contents); diff --git a/bus-core/src/main/java/org/aoju/bus/core/swing/ClipboardMonitor.java b/bus-core/src/main/java/org/aoju/bus/core/swing/ClipboardMonitor.java index a001295c2a..ab8c2d9ad6 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/swing/ClipboardMonitor.java +++ b/bus-core/src/main/java/org/aoju/bus/core/swing/ClipboardMonitor.java @@ -52,7 +52,7 @@ public enum ClipboardMonitor implements ClipboardOwner, Runnable, Closeable { private boolean isRunning; /** - * 构造,尝试获取剪贴板内容的次数为10,第二次之后延迟100毫秒 + * 构造,尝试获取剪贴板内容的次数为10,第二次之后延迟100毫秒 */ ClipboardMonitor() { this(DEFAULT_TRY_COUNT, DEFAULT_DELAY); @@ -62,7 +62,7 @@ public enum ClipboardMonitor implements ClipboardOwner, Runnable, Closeable { * 构造 * * @param tryCount 尝试获取剪贴板内容的次数 - * @param delay 响应延迟,当从第二次开始,延迟一定毫秒数等待剪贴板可以获取,当tryCount小于2时无效 + * @param delay 响应延迟,当从第二次开始,延迟一定毫秒数等待剪贴板可以获取,当tryCount小于2时无效 */ ClipboardMonitor(int tryCount, long delay) { this(tryCount, delay, ClipboardUtils.getClipboard()); @@ -72,7 +72,7 @@ public enum ClipboardMonitor implements ClipboardOwner, Runnable, Closeable { * 构造 * * @param tryCount 尝试获取剪贴板内容的次数 - * @param delay 响应延迟,当从第二次开始,延迟一定毫秒数等待剪贴板可以获取,当tryCount小于2时无效 + * @param delay 响应延迟,当从第二次开始,延迟一定毫秒数等待剪贴板可以获取,当tryCount小于2时无效 * @param clipboard 剪贴板对象 */ ClipboardMonitor(int tryCount, long delay, Clipboard clipboard) { @@ -150,7 +150,7 @@ public void lostOwnership(Clipboard clipboard, Transferable contents) { try { transferable = listener.onChange(clipboard, ObjectUtils.defaultIfNull(transferable, newContents)); } catch (Throwable e) { - // 忽略事件处理异常,保证所有监听正常执行 + // 忽略事件处理异常,保证所有监听正常执行 } } @@ -193,7 +193,7 @@ public void close() { * 尝试获取剪贴板内容 * * @param clipboard 剪贴板 - * @return 剪贴板内容,{@code null} 表示未获取到 + * @return 剪贴板内容,{@code null} 表示未获取到 * @throws InterruptedException 线程中断 */ private Transferable tryGetContent(Clipboard clipboard) throws InterruptedException { diff --git a/bus-core/src/main/java/org/aoju/bus/core/swing/ImageSelection.java b/bus-core/src/main/java/org/aoju/bus/core/swing/ImageSelection.java index 4f4f0326da..fffce572e7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/swing/ImageSelection.java +++ b/bus-core/src/main/java/org/aoju/bus/core/swing/ImageSelection.java @@ -8,7 +8,7 @@ import java.io.Serializable; /** - * 图片转换器,用于将图片对象转换为剪贴板支持的对象
+ * 图片转换器,用于将图片对象转换为剪贴板支持的对象
* 此对象也用于将图像文件和{@link DataFlavor#imageFlavor} 元信息对应 * * @author Kimi Liu diff --git a/bus-core/src/main/java/org/aoju/bus/core/swing/StringListener.java b/bus-core/src/main/java/org/aoju/bus/core/swing/StringListener.java index 16c107d78d..5c2e5dfe39 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/swing/StringListener.java +++ b/bus-core/src/main/java/org/aoju/bus/core/swing/StringListener.java @@ -28,11 +28,11 @@ public Transferable onChange(Clipboard clipboard, Transferable contents) { /** * 剪贴板变动触发的事件方法
- * 在此事件中对剪贴板设置值无效,如若修改,需返回修改内容 + * 在此事件中对剪贴板设置值无效,如若修改,需返回修改内容 * * @param clipboard 剪贴板对象 * @param contents 内容 - * @return 如果对剪贴板内容做修改,则返回修改的内容,{@code null}表示保留原内容 + * @return 如果对剪贴板内容做修改, 则返回修改的内容,{@code null}表示保留原内容 */ public abstract Transferable onChange(Clipboard clipboard, String contents); diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/Simhash.java b/bus-core/src/main/java/org/aoju/bus/core/text/Simhash.java index 459287376d..efbb5e184d 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/Simhash.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/Simhash.java @@ -7,10 +7,10 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; /** - * 局部敏感hash,用于海量文本去重 + * 局部敏感hash,用于海量文本去重 * *

- * 局部敏感hash定义:假定两个字符串具有一定的相似性,在hash之后,仍然能保持这种相似性,就称之为局部敏感hash。 + * 局部敏感hash定义:假定两个字符串具有一定的相似性,在hash之后,仍然能保持这种相似性,就称之为局部敏感hash *

* * @author Kimi Liu @@ -21,17 +21,17 @@ public class Simhash { private final int bitNum = 64; /** - * 存储段数,默认按照4段进行simhash存储 + * 存储段数,默认按照4段进行simhash存储 */ private final int fracCount; private final int fracBitNum; /** - * 汉明距离的衡量标准,小于此距离标准表示相似 + * 汉明距离的衡量标准,小于此距离标准表示相似 */ private final int hammingThresh; /** - * 按照分段存储simhash,查找更快速 + * 按照分段存储simhash,查找更快速 */ private List>> storage; private ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); @@ -67,7 +67,7 @@ public Simhash(int fracCount, int hammingThresh) { */ public long hash(Collection segList) { final int bitNum = this.bitNum; - // 按照词语的hash值,计算simHashWeight(低位对齐) + // 按照词语的hash值,计算simHashWeight(低位对齐) final int[] weight = new int[bitNum]; long wordHash; for (CharSequence seg : segList) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/StrBuilder.java b/bus-core/src/main/java/org/aoju/bus/core/text/StrBuilder.java index e005d338ce..4e95e1d59b 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/StrBuilder.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/StrBuilder.java @@ -55,7 +55,7 @@ public class StrBuilder implements CharSequence, Appendable, Serializable, Build */ protected char[] buffer; /** - * 当前指针位置,或者叫做已经加入的字符数,此位置总在最后一个字符之后 + * 当前指针位置,或者叫做已经加入的字符数,此位置总在最后一个字符之后 */ protected int size; /** diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/StrLookup.java b/bus-core/src/main/java/org/aoju/bus/core/text/StrLookup.java index 0e497bb0b2..ac756432a3 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/StrLookup.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/StrLookup.java @@ -47,34 +47,34 @@ protected StrLookup() { } /** - * 返回一个新的查找,该查找使用当前的副本 - * 如果安全管理器阻塞了对系统属性的访问, - * 则null将阻塞每次查找都返回。 + * 返回一个新的查找,该查找使用当前的副本 + * 如果安全管理器阻塞了对系统属性的访问, + * 则null将阻塞每次查找都返回 * - * @return 使用系统属性返回查找,而不是null + * @return 使用系统属性返回查找, 而不是null */ public static StrLookup systemPropertiesLookup() { return SYSTEM_PROPERTIES_LOOKUP; } /** - * 返回使用映射查找值的查找。 - * 如果映射为null,那么每次查找都会返回null + * 返回使用映射查找值的查找 + * 如果映射为null,那么每次查找都会返回null * 使用toString()将映射结果对象转换为字符串 * * @param 查找支持的值的类型 - * @param map 映射键值的映射,可以为空 - * @return 使用映射的查找,而不是null + * @param map 映射键值的映射,可以为空 + * @return 使用映射的查找, 而不是null */ public static StrLookup mapLookup(final Map map) { return new MapStrLookup(map); } /** - * 查找字符串值的字符串键。 + * 查找字符串值的字符串键 * * @param key 要查找的键可以为空 - * @return 匹配值,如果没有匹配则为空 + * @return 匹配值, 如果没有匹配则为空 */ public abstract String lookup(String key); @@ -98,12 +98,12 @@ static class MapStrLookup extends StrLookup { } /** - * 使用映射查找字符串值的字符串键。 - * 如果映射为null,则返回null。 - * 使用toString()将映射结果对象转换为字符串。 + * 使用映射查找字符串值的字符串键 + * 如果映射为null,则返回null + * 使用toString()将映射结果对象转换为字符串 * * @param key 要查找的键可以为空 - * @return 匹配值,如果没有匹配则为空 + * @return 匹配值, 如果没有匹配则为空 */ @Override public String lookup(final String key) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/StrMatcher.java b/bus-core/src/main/java/org/aoju/bus/core/text/StrMatcher.java index 1d6d2a65b5..9fae6cfa2a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/StrMatcher.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/StrMatcher.java @@ -30,8 +30,8 @@ import java.util.Arrays; /** - * 一个匹配器类,可以查询它来确定一个字符数组是否存在部分匹配。 - * 如果这些还不够,您可以子类化并实现自己的匹配器。 + * 一个匹配器类,可以查询它来确定一个字符数组是否存在部分匹配 + * 如果这些还不够,您可以子类化并实现自己的匹配器 * * @author Kimi Liu * @version 5.2.2 @@ -52,7 +52,7 @@ public abstract class StrMatcher { */ private static final StrMatcher SPACE_MATCHER = new CharMatcher(Symbol.C_SPACE); /** - * 匹配相同的字符,即空格、制表符、换行符等. + * 匹配相同的字符,即空格、制表符、换行符等. */ private static final StrMatcher SPLIT_MATCHER = new CharSetMatcher(" \t\n\r\f".toCharArray()); /** @@ -81,7 +81,7 @@ protected StrMatcher() { } /** - * 返回一个匹配逗号字符的匹配器。 + * 返回一个匹配逗号字符的匹配器 * * @return 逗号的匹配器 */ @@ -90,7 +90,7 @@ public static StrMatcher commaMatcher() { } /** - * 返回一个匹配tab字符的匹配器。 + * 返回一个匹配tab字符的匹配器 * * @return tab的匹配器 */ @@ -99,7 +99,7 @@ public static StrMatcher tabMatcher() { } /** - * 返回一个匹配空格字符的匹配器。 + * 返回一个匹配空格字符的匹配器 * * @return 空格的匹配器 */ @@ -108,7 +108,7 @@ public static StrMatcher spaceMatcher() { } /** - * 匹配相同的字符,即空格、制表符、换行符等. + * 匹配相同的字符,即空格、制表符、换行符等. * * @return 分割匹配器 */ @@ -174,7 +174,7 @@ public static StrMatcher charMatcher(final char ch) { /** * 构造函数 * - * @param chars 对要匹配的字符进行字符切分,null或empty不匹配任何字符 + * @param chars 对要匹配的字符进行字符切分,null或empty不匹配任何字符 * @return 给定字符的新匹配器[] */ public static StrMatcher charSetMatcher(final char... chars) { @@ -190,7 +190,7 @@ public static StrMatcher charSetMatcher(final char... chars) { /** * 构造函数 * - * @param chars 对要匹配的字符进行字符切分,null或empty不匹配任何字符 + * @param chars 对要匹配的字符进行字符切分,null或empty不匹配任何字符 * @return 给定字符的新匹配器 */ public static StrMatcher charSetMatcher(final String chars) { @@ -206,7 +206,7 @@ public static StrMatcher charSetMatcher(final String chars) { /** * 构造函数 * - * @param str 匹配的字符串为null或空,不匹配任何内容 + * @param str 匹配的字符串为null或空,不匹配任何内容 * @return 给定字符串返回一个新的匹配器 */ public static StrMatcher stringMatcher(final String str) { @@ -217,22 +217,22 @@ public static StrMatcher stringMatcher(final String str) { } /** - * 返回匹配字符的数量,如果没有匹配,则返回0 + * 返回匹配字符的数量,如果没有匹配,则返回0 * - * @param buffer 要匹配的文本内容,不要更改 - * @param pos 匹配的起始位置,对buffer有效 - * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 - * @param bufferEnd 活动缓冲区的结束索引(排除),对缓冲区有效 - * @return 匹配字符的数量,如果没有匹配,则返回0 + * @param buffer 要匹配的文本内容,不要更改 + * @param pos 匹配的起始位置,对buffer有效 + * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 + * @param bufferEnd 活动缓冲区的结束索引(排除),对缓冲区有效 + * @return 匹配字符的数量, 如果没有匹配, 则返回0 */ public abstract int isMatch(char[] buffer, int pos, int bufferStart, int bufferEnd); /** - * 返回匹配字符的数量,如果没有匹配,则返回0 + * 返回匹配字符的数量,如果没有匹配,则返回0 * - * @param pos 匹配的起始位置,对buffer有效 - * @param buffer 要匹配的文本内容,不要更改 - * @return 匹配字符的数量,如果没有匹配,则返回0 + * @param pos 匹配的起始位置,对buffer有效 + * @param buffer 要匹配的文本内容,不要更改 + * @return 匹配字符的数量, 如果没有匹配, 则返回0 */ public int isMatch(final char[] buffer, final int pos) { return isMatch(buffer, pos, 0, buffer.length); @@ -255,13 +255,13 @@ static final class CharSetMatcher extends StrMatcher { } /** - * 返回给定字符是否匹配。 + * 返回给定字符是否匹配 * - * @param buffer 要匹配的文本内容,不要更改 - * @param pos 匹配的起始位置,对buffer有效 - * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 - * @param bufferEnd 活动缓冲区的结束索引,对缓冲区有效 - * @return 匹配字符的数量,如果没有匹配,则返回0 + * @param buffer 要匹配的文本内容,不要更改 + * @param pos 匹配的起始位置,对buffer有效 + * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 + * @param bufferEnd 活动缓冲区的结束索引,对缓冲区有效 + * @return 匹配字符的数量, 如果没有匹配, 则返回0 */ @Override public int isMatch(final char[] buffer, final int pos, final int bufferStart, final int bufferEnd) { @@ -285,13 +285,13 @@ static final class CharMatcher extends StrMatcher { } /** - * 返回给定字符是否匹配。 + * 返回给定字符是否匹配 * - * @param buffer 要匹配的文本内容,不要更改 - * @param pos 匹配的起始位置,对buffer有效 - * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 - * @param bufferEnd 活动缓冲区的结束索引,对缓冲区有效 - * @return 匹配字符的数量,如果没有匹配,则返回0 + * @param buffer 要匹配的文本内容,不要更改 + * @param pos 匹配的起始位置,对buffer有效 + * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 + * @param bufferEnd 活动缓冲区的结束索引,对缓冲区有效 + * @return 匹配字符的数量, 如果没有匹配, 则返回0 */ @Override public int isMatch(final char[] buffer, final int pos, final int bufferStart, final int bufferEnd) { @@ -315,13 +315,13 @@ static final class StringMatcher extends StrMatcher { } /** - * 返回给定文本是否与存储的字符串匹配。 + * 返回给定文本是否与存储的字符串匹配 * - * @param buffer 要匹配的文本内容,不要更改 - * @param pos 匹配的起始位置,对buffer有效 - * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 - * @param bufferEnd 活动缓冲区的结束索引,对缓冲区有效 - * @return 匹配字符的数量,如果没有匹配,则返回0 + * @param buffer 要匹配的文本内容,不要更改 + * @param pos 匹配的起始位置,对buffer有效 + * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 + * @param bufferEnd 活动缓冲区的结束索引,对缓冲区有效 + * @return 匹配字符的数量, 如果没有匹配, 则返回0 */ @Override public int isMatch(final char[] buffer, int pos, final int bufferStart, final int bufferEnd) { @@ -354,13 +354,13 @@ static final class NoMatcher extends StrMatcher { } /** - * 总是返回false。 + * 总是返回false * - * @param buffer 要匹配的文本内容,不要更改 - * @param pos 匹配的起始位置,对buffer有效 - * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 - * @param bufferEnd 活动缓冲区的结束索引,对缓冲区有效 - * @return 匹配字符的数量,如果没有匹配,则返回0 + * @param buffer 要匹配的文本内容,不要更改 + * @param pos 匹配的起始位置,对buffer有效 + * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 + * @param bufferEnd 活动缓冲区的结束索引,对缓冲区有效 + * @return 匹配字符的数量, 如果没有匹配, 则返回0 */ @Override public int isMatch(final char[] buffer, final int pos, final int bufferStart, final int bufferEnd) { @@ -378,13 +378,13 @@ static final class TrimMatcher extends StrMatcher { } /** - * 返回给定字符是否匹配。 + * 返回给定字符是否匹配 * - * @param buffer 要匹配的文本内容,不要更改 - * @param pos 匹配的起始位置,对buffer有效 - * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 - * @param bufferEnd 活动缓冲区的结束索引,对缓冲区有效 - * @return 匹配字符的数量,如果没有匹配,则返回0 + * @param buffer 要匹配的文本内容,不要更改 + * @param pos 匹配的起始位置,对buffer有效 + * @param bufferStart 缓冲区中的第一个活动索引,对缓冲区有效 + * @param bufferEnd 活动缓冲区的结束索引,对缓冲区有效 + * @return 匹配字符的数量, 如果没有匹配, 则返回0 */ @Override public int isMatch(final char[] buffer, final int pos, final int bufferStart, final int bufferEnd) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/Substitute.java b/bus-core/src/main/java/org/aoju/bus/core/text/Substitute.java index 064ec68afc..faf00de82f 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/Substitute.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/Substitute.java @@ -76,7 +76,7 @@ public class Substitute { */ private boolean enableSubstitutionInVariables; /** - * 是否应该保留转义。默认false; + * 是否应该保留转义 默认false; */ private boolean preserveEscapes = false; @@ -88,8 +88,8 @@ public Substitute() { } /** - * 创建一个新实例并初始化它。对变量使用默认值 - * 前缀和后缀以及转义字符。 + * 创建一个新实例并初始化它 对变量使用默认值 + * 前缀和后缀以及转义字符 * * @param 映射中值的类型 * @param valueMap 带有变量值的映射可能为null @@ -99,12 +99,12 @@ public Substitute(final Map valueMap) { } /** - * 创建一个新实例并初始化它。使用默认转义字符。 + * 创建一个新实例并初始化它 使用默认转义字符 * * @param 映射中值的类型 * @param valueMap 带有变量值的映射可能为null - * @param prefix 变量的前缀,而不是null - * @param suffix 变量的后缀,而不是null + * @param prefix 变量的前缀,而不是null + * @param suffix 变量的后缀,而不是null */ public Substitute(final Map valueMap, final String prefix, final String suffix) { this(StrLookup.mapLookup(valueMap), prefix, suffix, Symbol.C_DOLLAR); @@ -115,8 +115,8 @@ public Substitute(final Map valueMap, final String prefix, final * * @param 映射中值的类型 * @param valueMap 带有变量值的映射可能为null - * @param prefix 变量的前缀,而不是null - * @param suffix 变量的后缀,而不是null + * @param prefix 变量的前缀,而不是null + * @param suffix 变量的后缀,而不是null * @param escape 转义字符 */ public Substitute(final Map valueMap, final String prefix, final String suffix, @@ -129,8 +129,8 @@ public Substitute(final Map valueMap, final String prefix, final * * @param 映射中值的类型 * @param valueMap 带有变量值的映射可能为null - * @param prefix 变量的前缀,而不是null - * @param suffix 变量的后缀,而不是null + * @param prefix 变量的前缀,而不是null + * @param suffix 变量的后缀,而不是null * @param escape 转义字符 * @param delimiter 变量默认值分隔符可以为空 */ @@ -152,8 +152,8 @@ public Substitute(final StrLookup resolver) { * 创建一个新实例并初始化. * * @param resolver 变量解析器可以为空 - * @param prefix 变量的前缀,而不是null - * @param suffix 变量的后缀,而不是null + * @param prefix 变量的前缀,而不是null + * @param suffix 变量的后缀,而不是null * @param escape 转义字符 */ public Substitute(final StrLookup resolver, final String prefix, final String suffix, @@ -169,8 +169,8 @@ public Substitute(final StrLookup resolver, final String prefix, final String * 创建一个新实例并初始化. * * @param resolver 变量解析器可以为空 - * @param prefix 变量的前缀,而不是null - * @param suffix 变量的后缀,而不是null + * @param prefix 变量的前缀,而不是null + * @param suffix 变量的后缀,而不是null * @param escape 转义字符 * @param delimiter 变量默认值分隔符可以为空 */ @@ -186,9 +186,9 @@ public Substitute(final StrLookup resolver, final String prefix, final String /** * 创建一个新实例并初始化. * - * @param resolver 变量解析器,可以为空 - * @param prefixMatcher 前缀解析器,而不是null - * @param suffixMatcher 后缀解析器,而不是null + * @param resolver 变量解析器,可以为空 + * @param prefixMatcher 前缀解析器,而不是null + * @param suffixMatcher 后缀解析器,而不是null * @param escape 转义转义字符 */ public Substitute( @@ -200,9 +200,9 @@ public Substitute( /** * 创建一个新实例并初始化. * - * @param resolver 变量解析器,可以为空 - * @param prefixMatcher 前缀解析器,而不是null - * @param suffixMatcher 后缀解析器,而不是null + * @param resolver 变量解析器,可以为空 + * @param prefixMatcher 前缀解析器,而不是null + * @param suffixMatcher 后缀解析器,而不是null * @param escape 转义转义字符 * @param delimiter 变量默认值分隔符可以为空 */ @@ -231,13 +231,13 @@ public static String replace(final Object source, final Map value /** * 将给定源对象中出现的所有变量替换 - * 它们在映射中匹配的值。这种方法允许指定自定义变量前缀和后缀 + * 它们在映射中匹配的值 这种方法允许指定自定义变量前缀和后缀 * * @param 映射中值的类型 * @param source 包含要替换的变量的源文本 * @param valueMap 映射的值可能为空 - * @param prefix 变量的前缀,而不是null - * @param suffix 变量的后缀,而不是null + * @param prefix 变量的前缀,而不是null + * @param suffix 变量的后缀,而不是null * @return 替换操作的结果 */ public static String replace(final Object source, final Map valueMap, final String prefix, final String suffix) { @@ -267,7 +267,7 @@ public static String replace(final Object source, final Properties value) { /** * 替换给定源对象中出现的所有变量 - * 它们在系统属性中匹配的值。 + * 它们在系统属性中匹配的值 * * @param source 包含要替换的变量的源文本 * @return 返回替换操作的结果 @@ -278,7 +278,7 @@ public static String replaceSystemProperties(final Object source) { /** * 用匹配的值替换所有出现的变量 - * 从使用给定源字符串作为模板的解析器。 + * 从使用给定源字符串作为模板的解析器 * * @param source 获取要替换的字符串 * @return 替换操作的结果 @@ -315,8 +315,8 @@ public String replace(final String source, final int offset, final int length) { /** * 用匹配的值替换所有出现的变量 - * 从使用给定源数组作为模板的解析器。 - * 该方法不改变数组。 + * 从使用给定源数组作为模板的解析器 + * 该方法不改变数组 * * @param source 获取要替换的字符数组的源代码 * @return 返回替换操作的结果 @@ -366,7 +366,7 @@ public String replace(final StringBuffer source) { /** * 用匹配的值替换所有出现的变量 * - * @param source 源缓冲区用作模板,没有更改 + * @param source 源缓冲区用作模板,没有更改 * @param offset 偏移数组中的起始偏移必须有效 * @param length 要处理的数组中的长度必须是有效的 * @return 返回替换操作的结果 @@ -383,7 +383,7 @@ public String replace(final StringBuffer source, final int offset, final int len /** * 用匹配的值替换所有出现的变量 * - * @param source 源缓冲区用作模板,没有更改 + * @param source 源缓冲区用作模板,没有更改 * @return 返回替换操作的结果 */ public String replace(final CharSequence source) { @@ -556,7 +556,7 @@ public boolean replaceIn(final StrBuilder source, final int offset, final int le /** * 替换变量的内部方法 * - * @param buffer 要替换为的字符串生成器,而不是null + * @param buffer 要替换为的字符串生成器,而不是null * @param offset 构造器中的起始偏移量必须有效 * @param length 要处理的构建器中的长度必须是有效的 * @return true/false @@ -568,11 +568,11 @@ protected boolean substitute(final StrBuilder buffer, final int offset, final in /** * 多层插值的递归处理程序 * - * @param buffer 要替换为的字符串生成器,而不是null + * @param buffer 要替换为的字符串生成器,而不是null * @param offset 构造器中的起始偏移量必须有效 * @param length 要处理的构建器中的长度必须是有效的 * @param priorVariables 保存被替换变量的堆栈可以为空 - * @return 发生的长度更改,除非priorVariables在int时为null 表示布尔标志,表示是否发生了更改 + * @return 发生的长度更改, 除非priorVariables在int时为null 表示布尔标志,表示是否发生了更改 */ private int substitute(final StrBuilder buffer, final int offset, final int length, List priorVariables) { final StrMatcher pfxMatcher = getVariablePrefixMatcher(); @@ -718,13 +718,13 @@ private void checkCyclicSubstitution(final String varName, final List pr /** * 解析变量值的内部方法 - * {@link #getVariableResolver()},其中变量名作为键。 + * {@link #getVariableResolver()},其中变量名作为键 * - * @param variableName 变量名,而不是null - * @param buf 是发生替换的缓冲区,而不是null - * @param startPos 变量的起始位置,包括前缀,有效 - * @param endPos 变量的结束位置,包括后缀,有效 - * @return 返回变量的值,如果变量未知,则null + * @param variableName 变量名,而不是null + * @param buf 是发生替换的缓冲区,而不是null + * @param startPos 变量的起始位置,包括前缀,有效 + * @param endPos 变量的结束位置,包括后缀,有效 + * @return 返回变量的值, 如果变量未知, 则null */ protected String resolveVariable(final String variableName, final StrBuilder buf, final int startPos, final int endPos) { final StrLookup resolver = getVariableResolver(); @@ -745,7 +745,7 @@ public char getEscapeChar() { /** * 设置转义字符 - * 如果该字符放在源中的变量引用之前,这个变量将被忽略。 + * 如果该字符放在源中的变量引用之前,这个变量将被忽略 * * @param escapeCharacter 转义字符(0表示禁用转义) */ @@ -763,10 +763,10 @@ public StrMatcher getVariablePrefixMatcher() { } /** - * 设置当前使用的变量前缀匹配器。 + * 设置当前使用的变量前缀匹配器 * - * @param prefixMatcher 前缀匹配器,null被忽略 - * @return this,以启用链接 + * @param prefixMatcher 前缀匹配器,null被忽略 + * @return this, 以启用链接 */ public Substitute setVariablePrefixMatcher(final StrMatcher prefixMatcher) { if (prefixMatcher == null) { @@ -780,7 +780,7 @@ public Substitute setVariablePrefixMatcher(final StrMatcher prefixMatcher) { * 设置要使用的变量前缀 * * @param prefix 要使用的前缀字符 - * @return this,以启用链接 + * @return this, 以启用链接 */ public Substitute setVariablePrefix(final char prefix) { return setVariablePrefixMatcher(StrMatcher.charMatcher(prefix)); @@ -789,8 +789,8 @@ public Substitute setVariablePrefix(final char prefix) { /** * 设置要使用的变量前缀 * - * @param prefix 变量的前缀,而不是null - * @return this,以启用链接 + * @param prefix 变量的前缀,而不是null + * @return this, 以启用链接 */ public Substitute setVariablePrefix(final String prefix) { if (prefix == null) { @@ -812,8 +812,8 @@ public StrMatcher getVariableSuffixMatcher() { /** * 设置当前使用的变量后缀匹配器 * - * @param suffixMatcher 后缀匹配器,null被忽略 - * @return this,以启用链接 + * @param suffixMatcher 后缀匹配器,null被忽略 + * @return this, 以启用链接 */ public Substitute setVariableSuffixMatcher(final StrMatcher suffixMatcher) { if (suffixMatcher == null) { @@ -827,7 +827,7 @@ public Substitute setVariableSuffixMatcher(final StrMatcher suffixMatcher) { * 设置要使用的变量后缀 * * @param suffix 要使用的后缀字符 - * @return this,以启用链接 + * @return this, 以启用链接 */ public Substitute setVariableSuffix(final char suffix) { return setVariableSuffixMatcher(StrMatcher.charMatcher(suffix)); @@ -836,8 +836,8 @@ public Substitute setVariableSuffix(final char suffix) { /** * 设置要使用的变量后缀 * - * @param suffix 变量的后缀,而不是null - * @return this,以启用链接 + * @param suffix 变量的后缀,而不是null + * @return this, 以启用链接 */ public Substitute setVariableSuffix(final String suffix) { if (suffix == null) { @@ -863,7 +863,7 @@ public Substitute setValueDelimiter(final char valueDelimiter) { * 设置要使用的变量默认值分隔符 * * @param valueDelimiter 要使用的变量默认值分隔符字符串可以为null或空 - * @return this,以启用链接 + * @return this, 以启用链接 */ public Substitute setValueDelimiter(final String valueDelimiter) { if (StringUtils.isEmpty(valueDelimiter)) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvConfig.java b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvConfig.java index 546453679d..aeeab48022 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvConfig.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvConfig.java @@ -37,27 +37,27 @@ public class CsvConfig implements Serializable { /** - * 字段分隔符,默认逗号',' + * 字段分隔符,默认逗号',' */ protected char fieldSeparator = Symbol.C_COMMA; /** - * 文本分隔符,文本包装符,默认双引号'"' + * 文本分隔符,文本包装符,默认双引号'"' */ protected char textDelimiter = Symbol.C_DOUBLE_QUOTES; /** - * 设置字段分隔符,默认逗号',' + * 设置字段分隔符,默认逗号',' * - * @param fieldSeparator 字段分隔符,默认逗号',' + * @param fieldSeparator 字段分隔符,默认逗号',' */ public void setFieldSeparator(final char fieldSeparator) { this.fieldSeparator = fieldSeparator; } /** - * 设置 文本分隔符,文本包装符,默认双引号'"' + * 设置 文本分隔符,文本包装符,默认双引号'"' * - * @param textDelimiter 文本分隔符,文本包装符,默认双引号'"' + * @param textDelimiter 文本分隔符,文本包装符,默认双引号'"' */ public void setTextDelimiter(char textDelimiter) { this.textDelimiter = textDelimiter; diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvData.java b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvData.java index a0eae3e435..b47178d4bc 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvData.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvData.java @@ -27,7 +27,7 @@ import java.util.List; /** - * CSV数据,包括头部信息和行数据,参考:FastCSV + * CSV数据,包括头部信息和行数据,参考:FastCSV * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvParser.java b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvParser.java index 90ac47cdc8..03389d1e83 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvParser.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvParser.java @@ -36,7 +36,7 @@ import java.util.*; /** - * CSV行解析器,参考:FastCSV + * CSV行解析器,参考:FastCSV * * @author Kimi Liu * @version 5.2.2 @@ -63,7 +63,7 @@ public final class CsvParser implements Closeable { */ private int bufLen; /** - * 拷贝开始的位置,一般为上一行的结束位置 + * 拷贝开始的位置,一般为上一行的结束位置 */ private int copyStart; /** @@ -83,7 +83,7 @@ public final class CsvParser implements Closeable { */ private long lineNo; /** - * 第一行字段数,用于检查每行字段数是否一致 + * 第一行字段数,用于检查每行字段数是否一致 */ private int firstLineFieldCount = -1; /** @@ -99,7 +99,7 @@ public final class CsvParser implements Closeable { * CSV解析器 * * @param reader Reader - * @param config 配置,null则为默认配置 + * @param config 配置,null则为默认配置 */ public CsvParser(final Reader reader, CsvReadConfig config) { this.reader = Objects.requireNonNull(reader, "reader must not be null"); @@ -107,7 +107,7 @@ public CsvParser(final Reader reader, CsvReadConfig config) { } /** - * 获取头部字段列表,如果containsHeader设置为false则抛出异常 + * 获取头部字段列表,如果containsHeader设置为false则抛出异常 * * @return 头部列表 * @throws IllegalStateException 如果不解析头部或者没有调用nextRow()方法 @@ -166,7 +166,7 @@ public CsvRow nextRow() throws InstrumentException { //初始化标题 if (config.containsHeader && null == header) { initHeader(currentFields); - // 作为标题行后,此行跳过,下一行做为第一行 + // 作为标题行后,此行跳过,下一行做为第一行 continue; } @@ -211,7 +211,7 @@ private List readLine() throws InstrumentException { while (true) { if (bufLen == localBufPos) { - // 此Buffer读取结束,开始读取下一段 + // 此Buffer读取结束,开始读取下一段 if (copyLen > 0) { localCurrentField.append(localBuf, localCopyStart, copyLen); @@ -240,7 +240,7 @@ private List readLine() throws InstrumentException { final char c = localBuf[localBufPos++]; if (inQuotes) { - //引号内,做为内容,直到引号结束 + //引号内,做为内容,直到引号结束 if (c == config.textDelimiter) { // End of quoted text inQuotes = false; diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvReadConfig.java b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvReadConfig.java index aba64140db..d075141d9d 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvReadConfig.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvReadConfig.java @@ -37,15 +37,15 @@ public class CsvReadConfig extends CsvConfig implements Serializable { private static final long serialVersionUID = 5396453565371560052L; /** - * 是否首行做为标题行,默认false + * 是否首行做为标题行,默认false */ protected boolean containsHeader; /** - * 是否跳过空白行,默认true + * 是否跳过空白行,默认true */ protected boolean skipEmptyRows = true; /** - * 每行字段个数不同时是否抛出异常,默认false + * 每行字段个数不同时是否抛出异常,默认false */ protected boolean errorOnDifferentFieldCount; @@ -59,27 +59,27 @@ public static CsvReadConfig defaultConfig() { } /** - * 设置是否首行做为标题行,默认false + * 设置是否首行做为标题行,默认false * - * @param containsHeader 是否首行做为标题行,默认false + * @param containsHeader 是否首行做为标题行,默认false */ public void setContainsHeader(boolean containsHeader) { this.containsHeader = containsHeader; } /** - * 设置是否跳过空白行,默认true + * 设置是否跳过空白行,默认true * - * @param skipEmptyRows 是否跳过空白行,默认true + * @param skipEmptyRows 是否跳过空白行,默认true */ public void setSkipEmptyRows(boolean skipEmptyRows) { this.skipEmptyRows = skipEmptyRows; } /** - * 设置每行字段个数不同时是否抛出异常,默认false + * 设置每行字段个数不同时是否抛出异常,默认false * - * @param errorOnDifferentFieldCount 每行字段个数不同时是否抛出异常,默认false + * @param errorOnDifferentFieldCount 每行字段个数不同时是否抛出异常,默认false */ public void setErrorOnDifferentFieldCount(boolean errorOnDifferentFieldCount) { this.errorOnDifferentFieldCount = errorOnDifferentFieldCount; diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvReader.java b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvReader.java index c01d752ed2..18b72e6322 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvReader.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvReader.java @@ -38,7 +38,7 @@ import java.util.Objects; /** - * CSV文件读取器,参考:FastCSV + * CSV文件读取器,参考:FastCSV * * @author Kimi Liu * @version 5.2.2 @@ -49,7 +49,7 @@ public final class CsvReader { CsvReadConfig config; /** - * 构造,使用默认配置项 + * 构造,使用默认配置项 */ public CsvReader() { this(null); @@ -65,55 +65,55 @@ public CsvReader(CsvReadConfig config) { } /** - * 设置字段分隔符,默认逗号',' + * 设置字段分隔符,默认逗号',' * - * @param fieldSeparator 字段分隔符,默认逗号',' + * @param fieldSeparator 字段分隔符,默认逗号',' */ public void setFieldSeparator(char fieldSeparator) { this.config.setFieldSeparator(fieldSeparator); } /** - * 设置 文本分隔符,文本包装符,默认双引号'"' + * 设置 文本分隔符,文本包装符,默认双引号'"' * - * @param textDelimiter 文本分隔符,文本包装符,默认双引号'"' + * @param textDelimiter 文本分隔符,文本包装符,默认双引号'"' */ public void setTextDelimiter(char textDelimiter) { this.config.setTextDelimiter(textDelimiter); } /** - * 设置是否首行做为标题行,默认false + * 设置是否首行做为标题行,默认false * - * @param containsHeader 是否首行做为标题行,默认false + * @param containsHeader 是否首行做为标题行,默认false */ public void setContainsHeader(boolean containsHeader) { this.config.setContainsHeader(containsHeader); } /** - * 设置是否跳过空白行,默认true + * 设置是否跳过空白行,默认true * - * @param skipEmptyRows 是否跳过空白行,默认true + * @param skipEmptyRows 是否跳过空白行,默认true */ public void setSkipEmptyRows(boolean skipEmptyRows) { this.config.setSkipEmptyRows(skipEmptyRows); } /** - * 设置每行字段个数不同时是否抛出异常,默认false + * 设置每行字段个数不同时是否抛出异常,默认false * - * @param errorOnDifferentFieldCount 每行字段个数不同时是否抛出异常,默认false + * @param errorOnDifferentFieldCount 每行字段个数不同时是否抛出异常,默认false */ public void setErrorOnDifferentFieldCount(boolean errorOnDifferentFieldCount) { this.setErrorOnDifferentFieldCount(errorOnDifferentFieldCount); } /** - * 读取CSV文件,默认UTF-8编码 + * 读取CSV文件,默认UTF-8编码 * * @param file CSV文件 - * @return {@link CsvData},包含数据列表和行信息 + * @return {@link CsvData},包含数据列表和行信息 * @throws InstrumentException IO异常 */ public CsvData read(File file) throws InstrumentException { @@ -124,8 +124,8 @@ public CsvData read(File file) throws InstrumentException { * 读取CSV文件 * * @param file CSV文件 - * @param charset 文件编码,默认系统编码 - * @return {@link CsvData},包含数据列表和行信息 + * @param charset 文件编码,默认系统编码 + * @return {@link CsvData},包含数据列表和行信息 * @throws InstrumentException IO异常 */ public CsvData read(File file, Charset charset) throws InstrumentException { @@ -133,10 +133,10 @@ public CsvData read(File file, Charset charset) throws InstrumentException { } /** - * 读取CSV文件,默认UTF-8编码 + * 读取CSV文件,默认UTF-8编码 * * @param path CSV文件 - * @return {@link CsvData},包含数据列表和行信息 + * @return {@link CsvData},包含数据列表和行信息 * @throws InstrumentException IO异常 */ public CsvData read(Path path) throws InstrumentException { @@ -147,8 +147,8 @@ public CsvData read(Path path) throws InstrumentException { * 读取CSV文件 * * @param path CSV文件 - * @param charset 文件编码,默认系统编码 - * @return {@link CsvData},包含数据列表和行信息 + * @param charset 文件编码,默认系统编码 + * @return {@link CsvData},包含数据列表和行信息 * @throws InstrumentException IO异常 */ public CsvData read(Path path, Charset charset) throws InstrumentException { @@ -164,7 +164,7 @@ public CsvData read(Path path, Charset charset) throws InstrumentException { * 从Reader中读取CSV数据 * * @param reader Reader - * @return {@link CsvData},包含数据列表和行信息 + * @return {@link CsvData},包含数据列表和行信息 * @throws InstrumentException IO异常 */ public CsvData read(Reader reader) throws InstrumentException { diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvRow.java b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvRow.java index 11088aa379..5c9b8af86b 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvRow.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvRow.java @@ -56,7 +56,7 @@ public CsvRow(final long originalLineNumber, final Map headerMa } /** - * 获取原始行号,多行情况下为首行行号。 + * 获取原始行号,多行情况下为首行行号 * * @return the original line number 行号 */ @@ -68,7 +68,7 @@ public long getOriginalLineNumber() { * 获取标题对应的字段内容 * * @param name 标题名 - * @return 字段值,null表示无此字段值 + * @return 字段值, null表示无此字段值 * @throws IllegalStateException CSV文件无标题行抛出此异常 */ public String getByName(final String name) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvWriteConfig.java b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvWriteConfig.java index de3afa3026..d333699842 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvWriteConfig.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvWriteConfig.java @@ -39,7 +39,7 @@ public class CsvWriteConfig extends CsvConfig implements Serializable { private static final long serialVersionUID = 5396453565371560052L; /** - * 是否始终使用文本分隔符,文本包装符,默认false,按需添加 + * 是否始终使用文本分隔符,文本包装符,默认false,按需添加 */ protected boolean alwaysDelimitText; /** @@ -57,9 +57,9 @@ public static CsvWriteConfig defaultConfig() { } /** - * 设置是否始终使用文本分隔符,文本包装符,默认false,按需添加 + * 设置是否始终使用文本分隔符,文本包装符,默认false,按需添加 * - * @param alwaysDelimitText 是否始终使用文本分隔符,文本包装符,默认false,按需添加 + * @param alwaysDelimitText 是否始终使用文本分隔符,文本包装符,默认false,按需添加 */ public void setAlwaysDelimitText(boolean alwaysDelimitText) { this.alwaysDelimitText = alwaysDelimitText; diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvWriter.java b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvWriter.java index 0a5c5a5eca..4c71e1055c 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvWriter.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/csv/CsvWriter.java @@ -54,7 +54,7 @@ public final class CsvWriter implements Closeable, Flushable { private boolean newline = true; /** - * 构造,覆盖已有文件(如果存在),默认编码UTF-8 + * 构造,覆盖已有文件(如果存在),默认编码UTF-8 * * @param filePath File CSV文件路径 */ @@ -63,7 +63,7 @@ public CsvWriter(String filePath) { } /** - * 构造,覆盖已有文件(如果存在),默认编码UTF-8 + * 构造,覆盖已有文件(如果存在),默认编码UTF-8 * * @param file File CSV文件 */ @@ -72,7 +72,7 @@ public CsvWriter(File file) { } /** - * 构造,覆盖已有文件(如果存在) + * 构造,覆盖已有文件(如果存在) * * @param filePath File CSV文件路径 * @param charset 编码 @@ -82,7 +82,7 @@ public CsvWriter(String filePath, Charset charset) { } /** - * 构造,覆盖已有文件(如果存在) + * 构造,覆盖已有文件(如果存在) * * @param file File CSV文件 * @param charset 编码 @@ -119,7 +119,7 @@ public CsvWriter(File file, Charset charset, boolean isAppend) { * @param filePath CSV文件路径 * @param charset 编码 * @param isAppend 是否追加 - * @param config 写出配置,null则使用默认配置 + * @param config 写出配置,null则使用默认配置 */ public CsvWriter(String filePath, Charset charset, boolean isAppend, CsvWriteConfig config) { this(FileUtils.file(filePath), charset, isAppend, config); @@ -131,14 +131,14 @@ public CsvWriter(String filePath, Charset charset, boolean isAppend, CsvWriteCon * @param file CSV文件 * @param charset 编码 * @param isAppend 是否追加 - * @param config 写出配置,null则使用默认配置 + * @param config 写出配置,null则使用默认配置 */ public CsvWriter(File file, Charset charset, boolean isAppend, CsvWriteConfig config) { this(FileUtils.getWriter(file, charset, isAppend), config); } /** - * 构造,使用默认配置 + * 构造,使用默认配置 * * @param writer {@link Writer} */ @@ -150,7 +150,7 @@ public CsvWriter(Writer writer) { * 构造 * * @param writer Writer - * @param config 写出配置,null则使用默认配置 + * @param config 写出配置,null则使用默认配置 */ public CsvWriter(Writer writer, CsvWriteConfig config) { this.writer = (writer instanceof BufferedWriter) ? writer : new BufferedWriter(writer); @@ -158,9 +158,9 @@ public CsvWriter(Writer writer, CsvWriteConfig config) { } /** - * 设置是否始终使用文本分隔符,文本包装符,默认false,按需添加 + * 设置是否始终使用文本分隔符,文本包装符,默认false,按需添加 * - * @param alwaysDelimitText 是否始终使用文本分隔符,文本包装符,默认false,按需添加 + * @param alwaysDelimitText 是否始终使用文本分隔符,文本包装符,默认false,按需添加 */ public void setAlwaysDelimitText(boolean alwaysDelimitText) { this.setAlwaysDelimitText(alwaysDelimitText); @@ -238,7 +238,7 @@ public void flush() throws InstrumentException { } /** - * 追加一行,末尾会自动换行,但是追加前不会换行 + * 追加一行,末尾会自动换行,但是追加前不会换行 * * @param fields 字段列表 ({@code null} 值会被做为空值追加) * @throws InstrumentException IO异常 @@ -252,7 +252,7 @@ private void appendLine(final String... fields) throws InstrumentException { } /** - * 追加一行,末尾会自动换行,但是追加前不会换行 + * 追加一行,末尾会自动换行,但是追加前不会换行 * * @param fields 字段列表 ({@code null} 值会被做为空值追加) * @throws IOException IO异常 @@ -268,9 +268,9 @@ private void doAppendLine(final String... fields) throws IOException { } /** - * 在当前行追加字段值,自动添加字段分隔符,如果有必要,自动包装字段 + * 在当前行追加字段值,自动添加字段分隔符,如果有必要,自动包装字段 * - * @param value 字段值,{@code null} 会被做为空串写出 + * @param value 字段值,{@code null} 会被做为空串写出 * @throws IOException IO异常 */ private void appendField(final String value) throws IOException { diff --git a/bus-core/src/main/java/org/aoju/bus/core/text/escape/EscapeCodeValues.java b/bus-core/src/main/java/org/aoju/bus/core/text/escape/EscapeCodeValues.java index 6f433f8fe6..f572637d14 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/text/escape/EscapeCodeValues.java +++ b/bus-core/src/main/java/org/aoju/bus/core/text/escape/EscapeCodeValues.java @@ -87,7 +87,7 @@ public class EscapeCodeValues { */ public static CharSequenceTranslator ESCAPE_XML11; /** - * 取消转义XML的转换器对象。 + * 取消转义XML的转换器对象 */ public static CharSequenceTranslator UNESCAPE_XML; /** @@ -564,7 +564,7 @@ public class EscapeCodeValues { } /** - * 用于将转义映射转换为反转义映射。 + * 用于将转义映射转换为反转义映射 * * @param map map数组 * @return Map倒数组 @@ -578,7 +578,7 @@ public static Map invert(final Map { private RejectedExecutionHandler handler; /** - * 创建ExecutorBuilder,开始构建 + * 创建ExecutorBuilder,开始构建 * * @return {@link ExecutorBuilder} */ @@ -80,7 +80,7 @@ private static ThreadPoolExecutor build(ExecutorBuilder builder) { } /** - * 设置初始池大小,默认0 + * 设置初始池大小,默认0 * * @param corePoolSize 初始池大小 * @return this @@ -102,7 +102,7 @@ public ExecutorBuilder setMaxPoolSize(int maxPoolSize) { } /** - * 设置线程存活时间,既当池中线程多于初始大小时,多出的线程保留的时长 + * 设置线程存活时间,既当池中线程多于初始大小时,多出的线程保留的时长 * * @param keepAliveTime 线程存活时间 * @param unit 单位 @@ -113,9 +113,9 @@ public ExecutorBuilder setKeepAliveTime(long keepAliveTime, TimeUnit unit) { } /** - * 设置线程存活时间,既当池中线程多于初始大小时,多出的线程保留的时长,单位纳秒 + * 设置线程存活时间,既当池中线程多于初始大小时,多出的线程保留的时长,单位纳秒 * - * @param keepAliveTime 线程存活时间,单位纳秒 + * @param keepAliveTime 线程存活时间,单位纳秒 * @return this */ public ExecutorBuilder setKeepAliveTime(long keepAliveTime) { @@ -124,12 +124,12 @@ public ExecutorBuilder setKeepAliveTime(long keepAliveTime) { } /** - * 设置队列,用于存在未执行的线程 + * 设置队列,用于存在未执行的线程 * 可选队列有: *
-     * 1. SynchronousQueue    它将任务直接提交给线程而不保持它们。当运行线程小于maxPoolSize时会创建新线程
-     * 2. LinkedBlockingQueue 无界队列,当运行线程大于corePoolSize时始终放入此队列,此时maximumPoolSize无效
-     * 3. ArrayBlockingQueue  有界队列,相对无界队列有利于控制队列大小,队列满时,运行线程小于maxPoolSize时会创建新线程,否则触发异常策略
+     * 1. SynchronousQueue    它将任务直接提交给线程而不保持它们 当运行线程小于maxPoolSize时会创建新线程
+     * 2. LinkedBlockingQueue 无界队列,当运行线程大于corePoolSize时始终放入此队列,此时maximumPoolSize无效
+     * 3. ArrayBlockingQueue  有界队列,相对无界队列有利于控制队列大小,队列满时,运行线程小于maxPoolSize时会创建新线程,否则触发异常策略
      * 
* * @param workQueue 队列 @@ -150,7 +150,7 @@ public ExecutorBuilder useSynchronousQueue() { } /** - * 设置线程工厂,用于自定义线程创建 + * 设置线程工厂,用于自定义线程创建 * * @param threadFactory 线程工厂 * @return this @@ -162,9 +162,9 @@ public ExecutorBuilder setThreadFactory(ThreadFactory threadFactory) { } /** - * 设置当线程阻塞(block)时的异常处理器,所谓线程阻塞既线程池和等待队列已满,无法处理线程时采取的策略 + * 设置当线程阻塞(block)时的异常处理器,所谓线程阻塞既线程池和等待队列已满,无法处理线程时采取的策略 *

- * 此处可以使用JDK预定义的几种策略,见{@link RejectPolicy}枚举 + * 此处可以使用JDK预定义的几种策略,见{@link RejectPolicy}枚举 * * @param handler {@link RejectedExecutionHandler} * @return this diff --git a/bus-core/src/main/java/org/aoju/bus/core/thread/GlobalThread.java b/bus-core/src/main/java/org/aoju/bus/core/thread/GlobalThread.java index 9593c77a4e..cd8b9e034a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/thread/GlobalThread.java +++ b/bus-core/src/main/java/org/aoju/bus/core/thread/GlobalThread.java @@ -96,7 +96,7 @@ public static void execute(Runnable runnable) { /** * 执行有返回值的异步方法 - * Future代表一个异步执行的操作,通过get()方法可以获得操作的结果,如果异步操作还没有完成,则,get()会使当前线程阻塞 + * Future代表一个异步执行的操作,通过get()方法可以获得操作的结果,如果异步操作还没有完成,则,get()会使当前线程阻塞 * * @param 执行的Task * @param task {@link Callable} @@ -108,7 +108,7 @@ public static Future submit(Callable task) { /** * 执行有返回值的异步方法 - * Future代表一个异步执行的操作,通过get()方法可以获得操作的结果,如果异步操作还没有完成,则,get()会使当前线程阻塞 + * Future代表一个异步执行的操作,通过get()方法可以获得操作的结果,如果异步操作还没有完成,则,get()会使当前线程阻塞 * * @param runnable 可运行对象 * @return {@link Future} diff --git a/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThread.java b/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThread.java index d73f5da955..3f6e9bf606 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThread.java +++ b/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThread.java @@ -24,7 +24,7 @@ package org.aoju.bus.core.thread; /** - * 带有Name标识的 {@link InheritableThreadLocal}, + * 带有Name标识的 {@link InheritableThreadLocal}, * 调用toString返回name * * @param 值类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThreadFactory.java b/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThreadFactory.java index 78781e2eb0..292f5a0c0e 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThreadFactory.java +++ b/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThreadFactory.java @@ -31,7 +31,7 @@ import java.util.concurrent.atomic.AtomicInteger; /** - * 线程创建工厂类,此工厂可选配置: + * 线程创建工厂类,此工厂可选配置: * *

  * 1. 自定义线程命名前缀
@@ -79,7 +79,7 @@ public NamedThreadFactory(String prefix, boolean isDeamon) {
      * 构造
      *
      * @param prefix      线程名前缀
-     * @param threadGroup 线程组,可以为null
+     * @param threadGroup 线程组,可以为null
      * @param isDeamon    是否守护线程
      */
     public NamedThreadFactory(String prefix, ThreadGroup threadGroup, boolean isDeamon) {
@@ -90,7 +90,7 @@ public NamedThreadFactory(String prefix, ThreadGroup threadGroup, boolean isDeam
      * 构造
      *
      * @param prefix      线程名前缀
-     * @param threadGroup 线程组,可以为null
+     * @param threadGroup 线程组,可以为null
      * @param isDeamon    是否守护线程
      * @param handler     未捕获异常处理
      */
diff --git a/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThreadLocal.java b/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThreadLocal.java
index 7058a652a7..f1eb5bce3d 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThreadLocal.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/thread/NamedThreadLocal.java
@@ -24,7 +24,7 @@
 package org.aoju.bus.core.thread;
 
 /**
- * 带有Name标识的 {@link ThreadLocal},
+ * 带有Name标识的 {@link ThreadLocal},
  * 调用toString返回name
  *
  * @param  值类型
diff --git a/bus-core/src/main/java/org/aoju/bus/core/thread/RejectPolicy.java b/bus-core/src/main/java/org/aoju/bus/core/thread/RejectPolicy.java
index c7c3045c85..29b0db65cc 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/thread/RejectPolicy.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/thread/RejectPolicy.java
@@ -31,7 +31,7 @@
  *
  * 

* 如果设置了maxSize, 当总线程数达到上限, - * 会调用RejectedExecutionHandler进行处理, + * 会调用RejectedExecutionHandler进行处理, * 此枚举为JDK预定义的几种策略枚举表示 * * @author Kimi Liu @@ -49,7 +49,7 @@ public enum RejectPolicy { */ DISCARD(new ThreadPoolExecutor.DiscardPolicy()), /** - * 如果执行程序尚未关闭,则位于工作队列头部的任务将被删除,然后重试执行程序(如果再次失败,则重复此过程) + * 如果执行程序尚未关闭,则位于工作队列头部的任务将被删除,然后重试执行程序(如果再次失败,则重复此过程) */ DISCARD_OLDEST(new ThreadPoolExecutor.DiscardOldestPolicy()), /** diff --git a/bus-core/src/main/java/org/aoju/bus/core/thread/Semaphore.java b/bus-core/src/main/java/org/aoju/bus/core/thread/Semaphore.java index df162218c0..96cab916e3 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/thread/Semaphore.java +++ b/bus-core/src/main/java/org/aoju/bus/core/thread/Semaphore.java @@ -4,9 +4,9 @@ * 带有信号量控制的{@link Runnable} 接口抽象实现 * *

- * 通过设置信号量,可以限制可以访问某些资源(物理或逻辑的)线程数目 - * 例如:设置信号量为2,表示最多有两个线程可以同时执行方法逻辑, - * 其余线程等待,直到此线程逻辑执行完毕 + * 通过设置信号量,可以限制可以访问某些资源(物理或逻辑的)线程数目 + * 例如:设置信号量为2,表示最多有两个线程可以同时执行方法逻辑, + * 其余线程等待,直到此线程逻辑执行完毕 *

* * @author Kimi Liu @@ -28,7 +28,7 @@ public class Semaphore implements Runnable { * 构造 * * @param runnable 实际执行的线程逻辑 - * @param semaphore 信号量,多个线程必须共享同一信号量 + * @param semaphore 信号量,多个线程必须共享同一信号量 */ public Semaphore(Runnable runnable, java.util.concurrent.Semaphore semaphore) { this.runnable = runnable; diff --git a/bus-core/src/main/java/org/aoju/bus/core/thread/SyncFinisher.java b/bus-core/src/main/java/org/aoju/bus/core/thread/SyncFinisher.java index ba25f4a804..4b67e47c2e 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/thread/SyncFinisher.java +++ b/bus-core/src/main/java/org/aoju/bus/core/thread/SyncFinisher.java @@ -31,8 +31,8 @@ /** * 线程同步结束器 - * 在完成一组正在其他线程中执行的操作之前, - * 它允许一个或多个线程一直等待。 + * 在完成一组正在其他线程中执行的操作之前, + * 它允许一个或多个线程一直等待 * 不能保证同时开始 * * @author Kimi Liu @@ -64,7 +64,7 @@ public void start() { } /** - * 等待所有Worker工作结束,否则阻塞 + * 等待所有Worker工作结束,否则阻塞 * * @throws InterruptedException 用户中断 */ @@ -91,7 +91,7 @@ public long count() { } /** - * 工作者,为一个线程 + * 工作者,为一个线程 */ public abstract class Worker extends Thread { diff --git a/bus-core/src/main/java/org/aoju/bus/core/thread/ThreadBuilder.java b/bus-core/src/main/java/org/aoju/bus/core/thread/ThreadBuilder.java index c673796c71..af532b39b0 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/thread/ThreadBuilder.java +++ b/bus-core/src/main/java/org/aoju/bus/core/thread/ThreadBuilder.java @@ -49,7 +49,7 @@ public class ThreadBuilder implements Builder { */ private String namePrefix; /** - * 是否守护线程,默认false + * 是否守护线程,默认false */ private Boolean daemon; /** @@ -118,7 +118,7 @@ public ThreadBuilder setThreadFactory(ThreadFactory backingThreadFactory) { } /** - * 设置线程名前缀,例如设置前缀为Thread-thread-,则线程名为Thread-thread-1之类。 + * 设置线程名前缀,例如设置前缀为Thread-thread-,则线程名为Thread-thread-1之类 * * @param namePrefix 线程名前缀 * @return this diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/$.java b/bus-core/src/main/java/org/aoju/bus/core/utils/$.java index c8b468f622..a38e034950 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/$.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/$.java @@ -4,7 +4,7 @@ import java.util.function.Supplier; /** - * 工具包集合,工具类快捷方式 + * 工具包集合,工具类快捷方式 * * @author Kimi Liu * @version 5.2.2 @@ -13,7 +13,7 @@ public class $ { /** - * 断言,必须不能为 null + * 断言,必须不能为 null * * @param obj the object reference to check for nullity * @param the type of the reference @@ -25,7 +25,7 @@ public static T requireNotNull(T obj) { } /** - * 断言,必须不能为 null + * 断言,必须不能为 null * * @param obj the object reference to check for nullity * @param message detail message to be used in the event that a {@code @@ -39,7 +39,7 @@ public static T requireNotNull(T obj, String message) { } /** - * 断言,必须不能为 null + * 断言,必须不能为 null * * @param obj the object reference to check for nullity * @param messageSupplier supplier of the detail message to be @@ -249,7 +249,7 @@ public static String format(String message, Object... arguments) { } /** - * 清理字符串,清理出某些不可见字符和一些sql特殊字符 + * 清理字符串,清理出某些不可见字符和一些sql特殊字符 * * @param txt 文本 * @return {String} @@ -259,7 +259,7 @@ public static String cleanText(String txt) { } /** - * 获取标识符,用于参数清理 + * 获取标识符,用于参数清理 * * @param param 参数 * @return 清理后的标识符 @@ -293,7 +293,7 @@ public static boolean equals(Object o1, Object o2) { } /** - * 比较两个对象是否不相等。
+ * 比较两个对象是否不相等
* * @param o1 对象1 * @param o2 对象2 @@ -314,7 +314,7 @@ public static int hashCode(Object obj) { } /** - * 如果对象为null,返回默认值 + * 如果对象为null,返回默认值 * * @param object Object * @param defaultValue 默认值 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/AnnoUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/AnnoUtils.java index bea095d9b6..36d7982e84 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/AnnoUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/AnnoUtils.java @@ -59,7 +59,7 @@ public static Element toCombination(AnnotatedElement annotationEle) { /** * 获取指定注解 * - * @param annotationEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission + * @param annotationEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission * @param isCombination boolean * @return 注解对象 */ @@ -71,7 +71,7 @@ public static Annotation[] getAnnotations(AnnotatedElement annotationEle, boolea * 获取指定注解 * * @param 注解类型 - * @param annotationEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission + * @param annotationEle {@link AnnotatedElement},可以是Class、Method、Field、Constructor、ReflectPermission * @param annotationType 注解类型 * @return 注解对象 */ @@ -84,7 +84,7 @@ public static A getAnnotation(AnnotatedElement annotation * 如果无指定的属性方法返回null * * @param 注解值类型 - * @param annotationEle {@link AccessibleObject},可以是Class、Method、Field、Constructor、ReflectPermission + * @param annotationEle {@link AccessibleObject},可以是Class、Method、Field、Constructor、ReflectPermission * @param annotationType 注解类型 * @return 注解对象 */ @@ -97,9 +97,9 @@ public static T getAnnotationValue(AnnotatedElement annotationEle, Class 注解值类型 - * @param annotationEle {@link AccessibleObject},可以是Class、Method、Field、Constructor、ReflectPermission + * @param annotationEle {@link AccessibleObject},可以是Class、Method、Field、Constructor、ReflectPermission * @param annotationType 注解类型 - * @param propertyName 属性名,例如注解中定义了name()方法,则 此处传入name + * @param propertyName 属性名,例如注解中定义了name()方法,则 此处传入name * @return 注解对象 */ public static T getAnnotationValue(AnnotatedElement annotationEle, Class annotationType, String propertyName) { @@ -119,7 +119,7 @@ public static T getAnnotationValue(AnnotatedElement annotationEle, Class ann } /** - * 获取注解类可以用来修饰哪些程序元素,如 TYPE, METHOD, CONSTRUCTOR, FIELD, PARAMETER 等 + * 获取注解类可以用来修饰哪些程序元素,如 TYPE, METHOD, CONSTRUCTOR, FIELD, PARAMETER 等 * * @param annotationType 注解类 * @return 注解修饰的程序元素数组 @@ -196,7 +196,7 @@ public static boolean isDocumented(Class annotationType) { } /** - * 是否可以被继承,默认为 false + * 是否可以被继承,默认为 false * * @param annotationType 注解类 * @return 是否会保存到 Javadoc 文档中 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/ArrayUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/ArrayUtils.java index 92903b2976..19e5a54a36 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/ArrayUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/ArrayUtils.java @@ -124,7 +124,7 @@ public class ArrayUtils { /** * 列表或数组中没有找到元素时的索引值 : {@code -1}. - * 此值由该类中的方法返回,也可用于与所返回的值进行比较{@link java.util.List}. + * 此值由该类中的方法返回,也可用于与所返回的值进行比较{@link java.util.List}. */ public static final int INDEX_NOT_FOUND = -1; @@ -132,7 +132,7 @@ public class ArrayUtils { * 数组或集合转String * * @param array 集合或数组对象 - * @return 数组字符串,与集合转字符串格式相同 + * @return 数组字符串, 与集合转字符串格式相同 */ public static String toString(final Object array) { return toString(array, "{}"); @@ -143,7 +143,7 @@ public static String toString(final Object array) { * * @param array 集合或数组对象 * @param stringIfNull 是否null - * @return 数组字符串,与集合转字符串格式相同 + * @return 数组字符串, 与集合转字符串格式相同 */ public static String toString(final Object array, final String stringIfNull) { if (array == null) { @@ -153,8 +153,8 @@ public static String toString(final Object array, final String stringIfNull) { } /** - * 获得一个数组哈希码,用于正确处理多维数组。 - * 多维基元数组也可以用该方法正确处理。 + * 获得一个数组哈希码,用于正确处理多维数组 + * 多维基元数组也可以用该方法正确处理 * * @param array 数组 * @return 返回数组的哈希码 @@ -165,8 +165,8 @@ public static int hashCode(final Object array) { /** * 将给定数组转换为{@link Map} - * 数组的每个元素必须是{@link Map}。或数组,其中至少包含两个 - * 元素,其中第一个元素用作键,第二个元素用作值。 + * 数组的每个元素必须是{@link Map} 或数组,其中至少包含两个 + * 元素,其中第一个元素用作键,第二个元素用作值 *
      * Map colorMap = ArrayUtils.toMap(new String[][] {
      *     {"RED", "#FF0000"},
@@ -206,18 +206,18 @@ public static Map toMap(final Object[] array) {
 
     /**
      * 该方法通常用于调用者本身使用泛型类型的场景
-     * 必须组合成数组。
+     * 必须组合成数组
      * 

- * 注意,此方法只适用于提供相同类型的参数,以便 - * 编译器可以推断数组本身的类型。虽然可以选择 + * 注意,此方法只适用于提供相同类型的参数,以便 + * 编译器可以推断数组本身的类型 虽然可以选择 * 显式输入like in * Number[] array = ArrayUtils.toArray(Integer.valueOf(42),Double.valueOf(Math.PI)) * 与……相比没有什么真正的优势 - * new Number[]{整数.valueof(42),Double.valueOf(Math.PI)}。 + * new Number[]{整数.valueof(42),Double.valueOf(Math.PI)} * * @param 对象 * @param items 数组 - * @return 返回数组,除非传入一个空数组,否则不为空 + * @return 返回数组, 除非传入一个空数组, 否则不为空 */ public static T[] toArray(final T... items) { return items; @@ -238,7 +238,7 @@ public static T[] clone(final T[] array) { } /** - * 克隆数组,如果非数组返回null + * 克隆数组,如果非数组返回null * * @param 数组元素类型 * @param obj 数组对象 @@ -640,8 +640,8 @@ public static Boolean[] nullToEmpty(final Boolean[] array) { } /** - * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引。 - * 开始索引包含,结束索引不包含,空数组输入产生空输出。 + * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引 + * 开始索引包含,结束索引不包含,空数组输入产生空输出 * * @param 对象 * @param array 对象数组 @@ -671,8 +671,8 @@ public static T[] subarray(final T[] array, int startIndex, int endIndex) { } /** - * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引。 - * 开始索引包含,结束索引不包含,空数组输入产生空输出。 + * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引 + * 开始索引包含,结束索引不包含,空数组输入产生空输出 * * @param array 对象数组 * @param startIndex 开始索引 @@ -700,8 +700,8 @@ public static long[] subarray(final long[] array, int startIndex, int endIndex) } /** - * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引。 - * 开始索引包含,结束索引不包含,空数组输入产生空输出。 + * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引 + * 开始索引包含,结束索引不包含,空数组输入产生空输出 * * @param array 对象数组 * @param startIndex 开始索引 @@ -729,8 +729,8 @@ public static int[] subarray(final int[] array, int startIndex, int endIndex) { } /** - * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引。 - * 开始索引包含,结束索引不包含,空数组输入产生空输出。 + * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引 + * 开始索引包含,结束索引不包含,空数组输入产生空输出 * * @param array 对象数组 * @param startIndex 开始索引 @@ -758,8 +758,8 @@ public static short[] subarray(final short[] array, int startIndex, int endIndex } /** - * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引。 - * 开始索引包含,结束索引不包含,空数组输入产生空输出。 + * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引 + * 开始索引包含,结束索引不包含,空数组输入产生空输出 * * @param array 对象数组 * @param startIndex 开始索引 @@ -787,8 +787,8 @@ public static char[] subarray(final char[] array, int startIndex, int endIndex) } /** - * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引。 - * 开始索引包含,结束索引不包含,空数组输入产生空输出。 + * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引 + * 开始索引包含,结束索引不包含,空数组输入产生空输出 * * @param array 对象数组 * @param startIndex 开始索引 @@ -816,8 +816,8 @@ public static byte[] subarray(final byte[] array, int startIndex, int endIndex) } /** - * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引。 - * 开始索引包含,结束索引不包含,空数组输入产生空输出。 + * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引 + * 开始索引包含,结束索引不包含,空数组输入产生空输出 * * @param array 对象数组 * @param startIndex 开始索引 @@ -845,8 +845,8 @@ public static double[] subarray(final double[] array, int startIndex, int endInd } /** - * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引。 - * 开始索引包含,结束索引不包含,空数组输入产生空输出。 + * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引 + * 开始索引包含,结束索引不包含,空数组输入产生空输出 * * @param array 对象数组 * @param startIndex 开始索引 @@ -874,8 +874,8 @@ public static float[] subarray(final float[] array, int startIndex, int endIndex } /** - * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引。 - * 开始索引包含,结束索引不包含,空数组输入产生空输出。 + * 生成一个新的数组,其中包含元素开始索引取值至结束位置索引 + * 开始索引包含,结束索引不包含,空数组输入产生空输出 * * @param array 对象数组 * @param startIndex 开始索引 @@ -1041,9 +1041,9 @@ public static boolean isSameType(final Object array1, final Object array2) { } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 */ public static void reverse(final Object[] array) { if (array == null) { @@ -1053,9 +1053,9 @@ public static void reverse(final Object[] array) { } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 */ public static void reverse(final long[] array) { if (array == null) { @@ -1065,9 +1065,9 @@ public static void reverse(final long[] array) { } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 */ public static void reverse(final int[] array) { if (array == null) { @@ -1077,9 +1077,9 @@ public static void reverse(final int[] array) { } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 */ public static void reverse(final short[] array) { if (array == null) { @@ -1089,9 +1089,9 @@ public static void reverse(final short[] array) { } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 */ public static void reverse(final char[] array) { if (array == null) { @@ -1101,9 +1101,9 @@ public static void reverse(final char[] array) { } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 */ public static void reverse(final byte[] array) { if (array == null) { @@ -1113,9 +1113,9 @@ public static void reverse(final byte[] array) { } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 */ public static void reverse(final double[] array) { if (array == null) { @@ -1125,9 +1125,9 @@ public static void reverse(final double[] array) { } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 */ public static void reverse(final float[] array) { if (array == null) { @@ -1137,9 +1137,9 @@ public static void reverse(final float[] array) { } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 */ public static void reverse(final boolean[] array) { if (array == null) { @@ -1149,7 +1149,7 @@ public static void reverse(final boolean[] array) { } /** - * @param array 数组,会变更 + * @param array 数组,会变更 * @param startIndex 其实位置(包含) * @param endIndex 结束位置(不包含) */ @@ -1170,9 +1170,9 @@ public static void reverse(final boolean[] array, final int startIndex, final in } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 * @param startIndex 其实位置(包含) * @param endIndex 结束位置(不包含) */ @@ -1193,9 +1193,9 @@ public static void reverse(final byte[] array, final int startIndex, final int e } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 * @param startIndex 其实位置(包含) * @param endIndex 结束位置(不包含) */ @@ -1216,9 +1216,9 @@ public static void reverse(final char[] array, final int startIndex, final int e } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 * @param startIndex 其实位置(包含) * @param endIndex 结束位置(不包含) */ @@ -1239,9 +1239,9 @@ public static void reverse(final double[] array, final int startIndex, final int } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 * @param startIndex 其实位置(包含) * @param endIndex 结束位置(不包含) */ @@ -1262,9 +1262,9 @@ public static void reverse(final float[] array, final int startIndex, final int } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 * @param startIndex 其实位置(包含) * @param endIndex 结束位置(不包含) */ @@ -1285,9 +1285,9 @@ public static void reverse(final int[] array, final int startIndex, final int en } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 * @param startIndex 其实位置(包含) * @param endIndex 结束位置(不包含) */ @@ -1308,9 +1308,9 @@ public static void reverse(final long[] array, final int startIndex, final int e } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 * @param startIndex 其实位置(包含) * @param endIndex 结束位置(不包含) */ @@ -1331,9 +1331,9 @@ public static void reverse(final Object[] array, final int startIndex, final int } /** - * 反转数组,会变更原数组 + * 反转数组,会变更原数组 * - * @param array 数组,会变更 + * @param array 数组,会变更 * @param startIndex 其实位置(包含) * @param endIndex 结束位置(不包含) */ @@ -2452,11 +2452,11 @@ public static void shift(final short[] array, int startIndex, int endIndex, int } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final Object[] array, final Object value) { @@ -2464,12 +2464,12 @@ public static int indexOf(final Object[] array, final Object value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final Object[] array, final Object value, int index) { @@ -2496,11 +2496,11 @@ public static int indexOf(final Object[] array, final Object value, int index) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final Object[] array, final Object value) { @@ -2508,12 +2508,12 @@ public static int lastIndexOf(final Object[] array, final Object value) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final Object[] array, final Object value, int index) { @@ -2554,11 +2554,11 @@ public static boolean contains(final Object[] array, final Object value) { /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final long[] array, final long value) { @@ -2566,12 +2566,12 @@ public static int indexOf(final long[] array, final long value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final long[] array, final long value, int index) { @@ -2590,11 +2590,11 @@ public static int indexOf(final long[] array, final long value, int index) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final long[] array, final long value) { @@ -2602,12 +2602,12 @@ public static int lastIndexOf(final long[] array, final long value) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final long[] array, final long value, int index) { @@ -2639,11 +2639,11 @@ public static boolean contains(final long[] array, final long value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final int[] array, final int value) { @@ -2651,12 +2651,12 @@ public static int indexOf(final int[] array, final int value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final int[] array, final int value, int index) { @@ -2675,11 +2675,11 @@ public static int indexOf(final int[] array, final int value, int index) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final int[] array, final int value) { @@ -2687,12 +2687,12 @@ public static int lastIndexOf(final int[] array, final int value) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final int[] array, final int value, int index) { @@ -2725,11 +2725,11 @@ public static boolean contains(final int[] array, final int value) { /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final short[] array, final short value) { @@ -2737,12 +2737,12 @@ public static int indexOf(final short[] array, final short value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final short[] array, final short value, int index) { @@ -2761,11 +2761,11 @@ public static int indexOf(final short[] array, final short value, int index) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final short[] array, final short value) { @@ -2773,12 +2773,12 @@ public static int lastIndexOf(final short[] array, final short value) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final short[] array, final short value, int index) { @@ -2811,11 +2811,11 @@ public static boolean contains(final short[] array, final short value) { /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final char[] array, final char value) { @@ -2823,12 +2823,12 @@ public static int indexOf(final char[] array, final char value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final char[] array, final char value, int index) { @@ -2847,11 +2847,11 @@ public static int indexOf(final char[] array, final char value, int index) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final char[] array, final char value) { @@ -2859,12 +2859,12 @@ public static int lastIndexOf(final char[] array, final char value) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final char[] array, final char value, int index) { @@ -2896,11 +2896,11 @@ public static boolean contains(final char[] array, final char value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final byte[] array, final byte value) { @@ -2908,12 +2908,12 @@ public static int indexOf(final byte[] array, final byte value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final byte[] array, final byte value, int index) { @@ -2932,11 +2932,11 @@ public static int indexOf(final byte[] array, final byte value, int index) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final byte[] array, final byte value) { @@ -2944,12 +2944,12 @@ public static int lastIndexOf(final byte[] array, final byte value) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final byte[] array, final byte value, int index) { @@ -2981,11 +2981,11 @@ public static boolean contains(final byte[] array, final byte value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final double[] array, final double value) { @@ -2993,12 +2993,12 @@ public static int indexOf(final double[] array, final double value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param tolerance 容差 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final double[] array, final double value, final double tolerance) { @@ -3006,12 +3006,12 @@ public static int indexOf(final double[] array, final double value, final double } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final double[] array, final double value, int index) { @@ -3030,13 +3030,13 @@ public static int indexOf(final double[] array, final double value, int index) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 * @param tolerance 容差 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final double[] array, final double value, int index, final double tolerance) { @@ -3057,11 +3057,11 @@ public static int indexOf(final double[] array, final double value, int index, f } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final double[] array, final double value) { @@ -3069,12 +3069,12 @@ public static int lastIndexOf(final double[] array, final double value) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param tolerance 容差 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final double[] array, final double value, final double tolerance) { @@ -3082,12 +3082,12 @@ public static int lastIndexOf(final double[] array, final double value, final do } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final double[] array, final double value, int index) { @@ -3108,13 +3108,13 @@ public static int lastIndexOf(final double[] array, final double value, int inde } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 * @param tolerance 容差 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final double[] array, final double value, int index, final double tolerance) { @@ -3148,12 +3148,12 @@ public static boolean contains(final double[] array, final double value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param tolerance 容差 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static boolean contains(final double[] array, final double value, final double tolerance) { @@ -3161,11 +3161,11 @@ public static boolean contains(final double[] array, final double value, final d } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final float[] array, final float value) { @@ -3173,12 +3173,12 @@ public static int indexOf(final float[] array, final float value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final float[] array, final float value, int index) { @@ -3197,11 +3197,11 @@ public static int indexOf(final float[] array, final float value, int index) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final float[] array, final float value) { @@ -3209,12 +3209,12 @@ public static int lastIndexOf(final float[] array, final float value) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final float[] array, final float value, int index) { @@ -3246,11 +3246,11 @@ public static boolean contains(final float[] array, final float value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final boolean[] array, final boolean value) { @@ -3258,12 +3258,12 @@ public static int indexOf(final boolean[] array, final boolean value) { } /** - * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int indexOf(final boolean[] array, final boolean value, int index) { @@ -3282,11 +3282,11 @@ public static int indexOf(final boolean[] array, final boolean value, int index) } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final boolean[] array, final boolean value) { @@ -3294,12 +3294,12 @@ public static int lastIndexOf(final boolean[] array, final boolean value) { } /** - * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 * @param index 索引 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.0.7 */ public static int lastIndexOf(final boolean[] array, final boolean value, int index) { @@ -3892,9 +3892,9 @@ public static Boolean[] toObject(final boolean[] array) { /** * 数组是否为空 - * 此方法会匹配单一对象,如果此对象为{@code null}则返回true - * 如果此对象为非数组,理解为此对象为数组的第一个元素,则返回false - * 如果此对象为数组对象,数组长度大于0情况下返回false,否则返回true + * 此方法会匹配单一对象,如果此对象为{@code null}则返回true + * 如果此对象为非数组,理解为此对象为数组的第一个元素,则返回false + * 如果此对象为数组对象,数组长度大于0情况下返回false,否则返回true * * @param array 数组 * @return 是否为空 @@ -3910,9 +3910,9 @@ public static boolean isEmpty(Object array) { /** * 数组是否为空 - * 此方法会匹配单一对象,如果此对象为{@code null}则返回true - * 如果此对象为非数组,理解为此对象为数组的第一个元素,则返回false - * 如果此对象为数组对象,数组长度大于0情况下返回false,否则返回true + * 此方法会匹配单一对象,如果此对象为{@code null}则返回true + * 如果此对象为非数组,理解为此对象为数组的第一个元素,则返回false + * 如果此对象为数组对象,数组长度大于0情况下返回false,否则返回true * * @param array 数组 * @return 是否为空 @@ -4003,9 +4003,9 @@ public static boolean isEmpty(final boolean[] array) { /** * 数组是否为非空 - * 此方法会匹配单一对象,如果此对象为{@code null}则返回false - * 如果此对象为非数组,理解为此对象为数组的第一个元素,则返回true - * 如果此对象为数组对象,数组长度大于0情况下返回true,否则返回false + * 此方法会匹配单一对象,如果此对象为{@code null}则返回false + * 如果此对象为非数组,理解为此对象为数组的第一个元素,则返回true + * 如果此对象为数组对象,数组长度大于0情况下返回true,否则返回false * * @param 对象 * @param array 数组 @@ -7061,12 +7061,12 @@ public static String[] toStringArray(final Object[] array, final String valueFor /** * 将新元素插入到到已有数组中的某个位置 - * 添加新元素会生成一个新的数组,不影响原数组 - * 如果插入位置为为负数,从原数组从后向前计数,若大于原数组长度,则空白处用null填充 + * 添加新元素会生成一个新的数组,不影响原数组 + * 如果插入位置为为负数,从原数组从后向前计数,若大于原数组长度,则空白处用null填充 * * @param 数组元素类型 * @param array 已有数组 - * @param index 插入位置,此位置为对应此位置元素之前的空档 + * @param index 插入位置,此位置为对应此位置元素之前的空档 * @param newElements 新元素 * @return 新数组 */ @@ -7721,7 +7721,7 @@ public static boolean hasNull(T... array) { * * @param 数组元素类型 * @param array 数组 - * @return 非空元素,如果不存在非空元素或数组为空,返回{@code null} + * @return 非空元素, 如果不存在非空元素或数组为空, 返回{@code null} * @since 3.0.7 */ @@ -7785,7 +7785,7 @@ public static Class getComponentType(Class arrayClass) { } /** - * 根据数组元素类型,获取数组的类型 + * 根据数组元素类型,获取数组的类型 * 方法是通过创建一个空数组从而获取其类型 * * @param componentType 数组元素类型 @@ -7828,7 +7828,7 @@ public static Object[] cast(Class type, Object arrayObj) throws NullPointerEx /** * 将新元素添加到已有数组中 - * 添加新元素会生成一个新的数组,不影响原数组 + * 添加新元素会生成一个新的数组,不影响原数组 * * @param 数组元素类型 * @param buffer 已有数组 @@ -7844,7 +7844,7 @@ public static T[] append(T[] buffer, T... newElements) { /** * 将新元素添加到已有数组中 - * 添加新元素会生成一个新的数组,不影响原数组 + * 添加新元素会生成一个新的数组,不影响原数组 * * @param 数组元素类型 * @param array 已有数组 @@ -7859,11 +7859,11 @@ public static Object append(Object array, T... newElements) { } /** - * 将元素值设置为数组的某个位置,当给定的index大于数组长度,则追加 + * 将元素值设置为数组的某个位置,当给定的index大于数组长度,则追加 * * @param 数组元素类型 * @param buffer 已有数组 - * @param index 位置,大于长度追加,否则替换 + * @param index 位置,大于长度追加,否则替换 * @param value 新值 * @return 新数组或原有数组 */ @@ -7878,21 +7878,21 @@ public static T[] setOrAppend(T[] buffer, int index, T value) { /** * 将新元素插入到到已有数组中的某个位置 - * 添加新元素会生成一个新的数组,不影响原数组 - * 如果插入位置为为负数,从原数组从后向前计数,若大于原数组长度,则空白处用null填充 + * 添加新元素会生成一个新的数组,不影响原数组 + * 如果插入位置为为负数,从原数组从后向前计数,若大于原数组长度,则空白处用null填充 * * @param 数组元素类型 * @param array 已有数组 - * @param index 插入位置,此位置为对应此位置元素之前的空档 + * @param index 插入位置,此位置为对应此位置元素之前的空档 * @param newElements 新元素 * @return 新数组 * */ /** - * 将元素值设置为数组的某个位置,当给定的index大于数组长度,则追加 + * 将元素值设置为数组的某个位置,当给定的index大于数组长度,则追加 * * @param array 已有数组 - * @param index 位置,大于长度追加,否则替换 + * @param index 位置,大于长度追加,否则替换 * @param value 新值 * @return 新数组或原有数组 */ @@ -7929,7 +7929,7 @@ public static T[] insert(T[] array, int index, T... newElements) { /** * 生成一个新的重新设置大小的数组 - * 调整大小后拷贝原数组到新数组下。扩大则占位前N个位置,缩小则截断 + * 调整大小后拷贝原数组到新数组下 扩大则占位前N个位置,缩小则截断 * * @param 数组元素类型 * @param buffer 原数组 @@ -7947,7 +7947,7 @@ public static T[] resize(T[] buffer, int newSize, Class componentType) { /** * 生成一个新的重新设置大小的数组 - * 新数组的类型为原数组的类型,调整大小后拷贝原数组到新数组下。扩大则占位前N个位置,缩小则截断 + * 新数组的类型为原数组的类型,调整大小后拷贝原数组到新数组下 扩大则占位前N个位置,缩小则截断 * * @param 数组元素类型 * @param buffer 原数组 @@ -7960,7 +7960,7 @@ public static T[] resize(T[] buffer, int newSize) { /** * 生成一个新的重新设置大小的数组
- * 调整大小后拷贝原数组到新数组下。扩大则占位前N个位置,其它位置补充0,缩小则截断 + * 调整大小后拷贝原数组到新数组下 扩大则占位前N个位置,其它位置补充0,缩小则截断 * * @param bytes 原数组 * @param newSize 新的数组大小 @@ -8029,7 +8029,7 @@ public static Object copy(Object src, int srcPos, Object dest, int destPos, int /** * 包装 {@link System#arraycopy(Object, int, Object, int, int)} - * 数组复制,缘数组和目标数组都是从位置0开始复制 + * 数组复制,缘数组和目标数组都是从位置0开始复制 * * @param src 源数组 * @param dest 目标数组 @@ -8126,11 +8126,11 @@ public static byte[][] split(byte[] array, int len) { } /** - * 返回数组中指定元素所在位置,忽略大小写,未找到返回{@link #INDEX_NOT_FOUND} + * 返回数组中指定元素所在位置,忽略大小写,未找到返回{@link #INDEX_NOT_FOUND} * * @param array 数组 * @param value 被检查的元素 - * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} + * @return 数组中指定元素所在位置, 未找到返回{@link #INDEX_NOT_FOUND} * @since 3.1.9 */ public static int indexOfIgnoreCase(CharSequence[] array, CharSequence value) { @@ -8478,7 +8478,7 @@ public static boolean[] unWrap(Boolean... values) { /** * 包装数组对象 * - * @param obj 对象,可以是对象数组或者基本类型数组 + * @param obj 对象,可以是对象数组或者基本类型数组 * @return 包装类型数组或对象数组 * @throws InstrumentException 对象为非数组 */ @@ -8520,7 +8520,7 @@ public static Object[] wrap(Object obj) { * 对象是否为数组对象 * * @param obj 对象 - * @return 是否为数组对象,如果为{@code null} 返回false + * @return 是否为数组对象, 如果为{@code null} 返回false */ public static boolean isArray(Object obj) { if (null == obj) { @@ -8530,11 +8530,11 @@ public static boolean isArray(Object obj) { } /** - * 获取数组对象中指定index的值,支持负数,例如-1表示倒数第一个值 + * 获取数组对象中指定index的值,支持负数,例如-1表示倒数第一个值 * * @param 数组元素类型 * @param array 数组对象 - * @param index 下标,支持负数 + * @param index 下标,支持负数 * @return 值 */ public static T get(Object array, int index) { @@ -8545,7 +8545,7 @@ public static T get(Object array, int index) { } /** - * 获取数组中指定多个下标元素值,组成新数组 + * 获取数组中指定多个下标元素值,组成新数组 * * @param 数组元素类型 * @param array 数组 @@ -8619,7 +8619,7 @@ public static Object[] sub(Object array, int start, int end, int step) { /** * 获取数组长度 - * 如果参数为{@code null},返回0 + * 如果参数为{@code null},返回0 * *

      * ArrayUtils.length(null)            = 0
@@ -8632,7 +8632,7 @@ public static Object[] sub(Object array, int start, int end, int step) {
      *
      * @param array 数组对象
      * @return 数组长度
-     * @throws IllegalArgumentException 如果参数不为数组,抛出此异常
+     * @throws IllegalArgumentException 如果参数不为数组,抛出此异常
      * @see Array#getLength(Object)
      */
     public static int length(Object array) throws IllegalArgumentException {
@@ -8673,8 +8673,8 @@ public static String join(long[] array, CharSequence conjunction) {
      * @param          被处理的集合
      * @param array       数组
      * @param conjunction 分隔符
-     * @param prefix      每个元素添加的前缀,null表示不添加
-     * @param suffix      每个元素添加的后缀,null表示不添加
+     * @param prefix      每个元素添加的前缀,null表示不添加
+     * @param suffix      每个元素添加的后缀,null表示不添加
      * @return 连接后的字符串
      */
     public static  String join(T[] array, CharSequence conjunction, String prefix, String suffix) {
@@ -9280,7 +9280,7 @@ public static float max(float... numberArray) {
      * keys = [a,b,c,d]
      * values = [1,2,3,4]
      * 则得到的Map是 {a=1, b=2, c=3, d=4}
-     * 如果两个数组长度不同,则只对应最短部分
+     * 如果两个数组长度不同,则只对应最短部分
      *
      * @param      Key类型
      * @param      Value类型
@@ -9306,11 +9306,11 @@ public static  Map zip(K[] keys, V[] values, boolean isOrder) {
 
     /**
      * 过滤
-     * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能:
+     * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能:
      *
      * 
-     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
-     * 2、修改元素对象,返回集合中为修改后的对象
+     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
+     * 2、修改元素对象,返回集合中为修改后的对象
      * 
* * @param 数组元素类型 @@ -9332,11 +9332,11 @@ public static T[] filter(T[] array, Editor editor) { /** * 过滤 - * 过滤过程通过传入的Filter实现来过滤返回需要的元素内容,这个Editor实现可以实现以下功能: + * 过滤过程通过传入的Filter实现来过滤返回需要的元素内容,这个Editor实现可以实现以下功能: * * @param 数组元素类型 * @param array 数组 - * @param filter 过滤器接口,用于定义过滤规则 + * @param filter 过滤器接口,用于定义过滤规则 * @return 过滤后的数组 * @since 5.2.2 */ @@ -9353,7 +9353,7 @@ public static T[] filter(T[] array, Filter filter) { } /** - * 数组中是否包含元素,忽略大小写 + * 数组中是否包含元素,忽略大小写 * * @param array 数组 * @param value 被检查的元素 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/BeanUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/BeanUtils.java index e2843b52db..5d02d374d0 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/BeanUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/BeanUtils.java @@ -42,7 +42,7 @@ * Bean工具类 * *

- * 把一个拥有对属性进行set和get方法的类,我们就可以称之为JavaBean。 + * 把一个拥有对属性进行set和get方法的类,我们就可以称之为JavaBean *

* * @author Kimi Liu @@ -156,7 +156,7 @@ public boolean accept(PropertyDescriptor t) { } /** - * 获得字段名和字段描述Map,获得的结果会缓存在 {@link BeanInfoCache}中 + * 获得字段名和字段描述Map,获得的结果会缓存在 {@link BeanInfoCache}中 * * @param clazz Bean类 * @param ignoreCase 是否忽略大小写 @@ -172,7 +172,7 @@ public static Map getPropertyDescriptorMap(Class } /** - * 获得字段名和字段描述Map。内部使用,直接获取Bean类的PropertyDescriptor + * 获得字段名和字段描述Map 内部使用,直接获取Bean类的PropertyDescriptor * * @param clazz Bean类 * @param ignoreCase 是否忽略大小写 @@ -190,7 +190,7 @@ private static Map internalGetPropertyDescriptorMap( } /** - * 获得Bean类属性描述,大小写敏感 + * 获得Bean类属性描述,大小写敏感 * * @param clazz Bean类 * @param fieldName 字段名 @@ -214,11 +214,11 @@ public static PropertyDescriptor getPropertyDescriptor(Class clazz, final Str } /** - * 获得字段值,通过反射直接获得字段值,并不调用getXXX方法 - * 对象同样支持Map类型,fieldNameOrIndex即为key + * 获得字段值,通过反射直接获得字段值,并不调用getXXX方法 + * 对象同样支持Map类型,fieldNameOrIndex即为key * * @param bean Bean对象 - * @param fieldNameOrIndex 字段名或序号,序号支持负数 + * @param fieldNameOrIndex 字段名或序号,序号支持负数 * @return 字段值 */ public static Object getFieldValue(Object bean, String fieldNameOrIndex) { @@ -238,11 +238,11 @@ public static Object getFieldValue(Object bean, String fieldNameOrIndex) { } /** - * 设置字段值,,通过反射设置字段值,并不调用setXXX方法 - * 对象同样支持Map类型,fieldNameOrIndex即为key + * 设置字段值,,通过反射设置字段值,并不调用setXXX方法 + * 对象同样支持Map类型,fieldNameOrIndex即为key * * @param bean Bean - * @param fieldNameOrIndex 字段名或序号,序号支持负数 + * @param fieldNameOrIndex 字段名或序号,序号支持负数 * @param value 值 */ public static void setFieldValue(Object bean, String fieldNameOrIndex, Object value) { @@ -261,8 +261,8 @@ public static void setFieldValue(Object bean, String fieldNameOrIndex, Object va /** * 解析Bean中的属性值 * - * @param bean Bean对象,支持Map、List、Collection、Array - * @param expression 表达式,例如:person.friend[5].name + * @param bean Bean对象,支持Map、List、Collection、Array + * @param expression 表达式,例如:person.friend[5].name * @return Bean属性值 * @see BeanPath#get(Object) * @since 3.0.7 @@ -274,8 +274,8 @@ public static Object getProperty(Object bean, String expression) { /** * 解析Bean中的属性值 * - * @param bean Bean对象,支持Map、List、Collection、Array - * @param expression 表达式,例如:person.friend[5].name + * @param bean Bean对象,支持Map、List、Collection、Array + * @param expression 表达式,例如:person.friend[5].name * @param value 值 * @see BeanPath#get(Object) */ @@ -337,7 +337,7 @@ public static T fillBeanWithMap(Map map, T bean, boolean isIgnoreError } /** - * 使用Map填充Bean对象,可配置将下划线转换为驼峰 + * 使用Map填充Bean对象,可配置将下划线转换为驼峰 * * @param Bean类型 * @param map Map @@ -351,7 +351,7 @@ public static T fillBeanWithMap(Map map, T bean, boolean isToCamelCase } /** - * 使用Map填充Bean对象,忽略大小写 + * 使用Map填充Bean对象,忽略大小写 * * @param Bean类型 * @param map Map @@ -417,7 +417,7 @@ public static T toBean(Object source, Class clazz) { * @param Bean类型 * @param beanClass Bean Class * @param valueProvider 值提供者 - * @param copyOptions 拷贝选项,见 {@link CopyOptions} + * @param copyOptions 拷贝选项,见 {@link CopyOptions} * @return Bean */ public static T toBean(Class beanClass, ValueProvider valueProvider, CopyOptions copyOptions) { @@ -430,7 +430,7 @@ public static T toBean(Class beanClass, ValueProvider valueProvid * @param Bean类型 * @param bean Bean * @param valueProvider 值提供者 - * @param copyOptions 拷贝选项,见 {@link CopyOptions} + * @param copyOptions 拷贝选项,见 {@link CopyOptions} * @return Bean */ public static T fillBean(T bean, ValueProvider valueProvider, CopyOptions copyOptions) { @@ -442,7 +442,7 @@ public static T fillBean(T bean, ValueProvider valueProvider, CopyOp } /** - * 对象转Map,不进行驼峰转下划线,不忽略值为空的字段 + * 对象转Map,不进行驼峰转下划线,不忽略值为空的字段 * * @param bean bean对象 * @return Map @@ -489,18 +489,18 @@ public String edit(String key) { /** * 对象转Map - * 通过实现{@link Editor} 可以自定义字段值,如果这个Editor返回null则忽略这个字段,以便实现: + * 通过实现{@link Editor} 可以自定义字段值,如果这个Editor返回null则忽略这个字段,以便实现: * *
-     * 1. 字段筛选,可以去除不需要的字段
-     * 2. 字段变换,例如实现驼峰转下划线
+     * 1. 字段筛选,可以去除不需要的字段
+     * 2. 字段变换,例如实现驼峰转下划线
      * 3. 自定义字段前缀或后缀等等
      * 
* * @param bean bean对象 * @param targetMap 目标的Map * @param ignoreNullValue 是否忽略值为空的字段 - * @param keyEditor 属性字段(Map的key)编辑器,用于筛选、编辑key + * @param keyEditor 属性字段(Map的key)编辑器,用于筛选、编辑key * @return Map */ public static Map beanToMap(Object bean, Map targetMap, boolean ignoreNullValue, Editor keyEditor) { @@ -548,7 +548,7 @@ public static void copyProperties(Object source, Object target) { /** * 复制Bean对象属性 - * 限制类用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类 + * 限制类用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类 * * @param source 源Bean对象 * @param target 目标Bean对象 @@ -571,11 +571,11 @@ public static void copyProperties(Object source, Object target, boolean ignoreCa /** * 复制Bean对象属性 - * 限制类用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类 + * 限制类用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类 * * @param source 源Bean对象 * @param target 目标Bean对象 - * @param copyOptions 拷贝选项,见 {@link CopyOptions} + * @param copyOptions 拷贝选项,见 {@link CopyOptions} */ public static void copyProperties(Object source, Object target, CopyOptions copyOptions) { if (null == copyOptions) { @@ -586,12 +586,12 @@ public static void copyProperties(Object source, Object target, CopyOptions copy /** * 给定的Bean的类名是否匹配指定类名字符串 - * 如果isSimple为{@code false},则只匹配类名而忽略包名 - * 如果isSimple为{@code true},则匹配包括包名的全类名 + * 如果isSimple为{@code false},则只匹配类名而忽略包名 + * 如果isSimple为{@code true},则匹配包括包名的全类名 * * @param bean Bean * @param beanClassName Bean的类名 - * @param isSimple 是否只匹配类名而忽略包名,true表示忽略包名 + * @param isSimple 是否只匹配类名而忽略包名,true表示忽略包名 * @return 是否匹配 */ public static boolean isMatchName(Object bean, String beanClassName, boolean isSimple) { @@ -599,9 +599,9 @@ public static boolean isMatchName(Object bean, String beanClassName, boolean isS } /** - * 把Bean里面的String属性做trim操作。 + * 把Bean里面的String属性做trim操作 *

- * 通常bean直接用来绑定页面的input,用户的输入可能首尾存在空格,通常保存数据库前需要把首尾空格去掉 + * 通常bean直接用来绑定页面的input,用户的输入可能首尾存在空格,通常保存数据库前需要把首尾空格去掉 * * @param Bean类型 * @param bean Bean对象 @@ -625,7 +625,7 @@ public static T trimStrFields(T bean, String... ignoreFields) { if (null != val) { final String trimVal = StringUtils.trim(val); if (false == val.equals(trimVal)) { - // Field Value不为null,且首尾有空格才处理 + // Field Value不为null,且首尾有空格才处理 ReflectUtils.setFieldValue(bean, field, trimVal); } } @@ -636,10 +636,10 @@ public static T trimStrFields(T bean, String... ignoreFields) { } /** - * 判断Bean是否为空对象,空对象表示本身为null或者所有属性都为null + * 判断Bean是否为空对象,空对象表示本身为null或者所有属性都为null * * @param bean Bean对象 - * @return 是否为空,true - 空 / false - 非空 + * @return 是否为空, true - 空 / false - 非空 */ public static boolean isEmpty(Object bean) { if (null != bean) { @@ -657,7 +657,7 @@ public static boolean isEmpty(Object bean) { * 对象本身为null也返回true * * @param bean Bean对象 - * @return 是否包含值为null的属性,true - 包含 / false - 不包含 + * @return 是否包含值为null的属性,true - 包含 / false - 不包含 */ public static boolean hasNullField(Object bean) { if (null == bean) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/BufferUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/BufferUtils.java index 1feede6999..284f7aea3a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/BufferUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/BufferUtils.java @@ -105,7 +105,7 @@ public static byte[] readBytes(ByteBuffer buffer) { /** * 读取指定长度的bytes - * 如果长度不足,则读取剩余部分,此时buffer必须为读模式 + * 如果长度不足,则读取剩余部分,此时buffer必须为读模式 * * @param buffer ByteBuffer * @param maxLength 最大长度 @@ -136,17 +136,17 @@ public static byte[] readBytes(ByteBuffer buffer, int start, int end) { } /** - * 一行的末尾位置,查找位置时位移ByteBuffer到结束位置 + * 一行的末尾位置,查找位置时位移ByteBuffer到结束位置 * * @param buffer {@link ByteBuffer} - * @return 末尾位置,未找到或达到最大长度返回-1 + * @return 末尾位置, 未找到或达到最大长度返回-1 */ public static int lineEnd(ByteBuffer buffer) { return lineEnd(buffer, buffer.remaining()); } /** - * 一行的末尾位置,查找位置时位移ByteBuffer到结束位置 + * 一行的末尾位置,查找位置时位移ByteBuffer到结束位置 * 支持的换行符如下: *

      * 1. \r\n
@@ -155,7 +155,7 @@ public static int lineEnd(ByteBuffer buffer) {
      *
      * @param buffer    {@link ByteBuffer}
      * @param maxLength 读取最大长度
-     * @return 末尾位置,未找到或达到最大长度返回-1
+     * @return 末尾位置, 未找到或达到最大长度返回-1
      */
     public static int lineEnd(ByteBuffer buffer, int maxLength) {
         int primitivePosition = buffer.position();
@@ -175,20 +175,20 @@ public static int lineEnd(ByteBuffer buffer, int maxLength) {
             }
 
             if (charIndex - primitivePosition > maxLength) {
-                //查找到尽头,未找到,还原位置
+                //查找到尽头,未找到,还原位置
                 buffer.position(primitivePosition);
                 throw new IndexOutOfBoundsException(StringUtils.format("Position is out of maxLength: {}", maxLength));
             }
         }
 
-        //查找到buffer尽头,未找到,还原位置
+        //查找到buffer尽头,未找到,还原位置
         buffer.position(primitivePosition);
         //读到结束位置
         return -1;
     }
 
     /**
-     * 读取一行,如果buffer中最后一部分并非完整一行,则返回null
+     * 读取一行,如果buffer中最后一部分并非完整一行,则返回null
      * 支持的换行符如下:
      * 
      * 1. \r\n
diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/CallerUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/CallerUtils.java
index e6e1975fdd..9a24924d38 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/utils/CallerUtils.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/utils/CallerUtils.java
@@ -28,7 +28,7 @@
 import org.aoju.bus.core.lang.caller.StackTraceCaller;
 
 /**
- * 调用者。可以通过此类的方法获取调用者、多级调用者以及判断是否被调用
+ * 调用者 可以通过此类的方法获取调用者、多级调用者以及判断是否被调用
  *
  * @author Kimi Liu
  * @version 5.2.2
@@ -61,7 +61,7 @@ public static Class getCallers() {
     }
 
     /**
-     * 获得调用者,指定第几级调用者
+     * 获得调用者,指定第几级调用者
      * 调用者层级关系:
      *
      * 
@@ -71,7 +71,7 @@ public static Class getCallers() {
      * ...
      * 
* - * @param depth 层级。0表示{@link CallerUtils}本身,1表示调用{@link CallerUtils}的类,2表示调用者的调用者,依次类推 + * @param depth 层级 0表示{@link CallerUtils}本身,1表示调用{@link CallerUtils}的类,2表示调用者的调用者,依次类推 * @return 第几级调用者 */ public static Class getCaller(int depth) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/CharUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/CharUtils.java index 17c5dda558..b802bf62da 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/CharUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/CharUtils.java @@ -36,7 +36,7 @@ public class CharUtils { /** - * 是否为ASCII字符,ASCII字符位于0~127之间 + * 是否为ASCII字符,ASCII字符位于0~127之间 * *
      *   CharUtils.isAscii('a')  = true
@@ -48,14 +48,14 @@ public class CharUtils {
      * 
* * @param ch 被检查的字符处 - * @return true表示为ASCII字符,ASCII字符位于0~127之间 + * @return true表示为ASCII字符, ASCII字符位于0~127之间 */ public static boolean isAscii(char ch) { return ch < 128; } /** - * 是否为可见ASCII字符,可见字符位于32~126之间 + * 是否为可见ASCII字符,可见字符位于32~126之间 * *
      *   CharUtils.isAsciiPrintable('a')  = true
@@ -67,14 +67,14 @@ public static boolean isAscii(char ch) {
      * 
* * @param ch 被检查的字符处 - * @return true表示为ASCII可见字符,可见字符位于32~126之间 + * @return true表示为ASCII可见字符, 可见字符位于32~126之间 */ public static boolean isAsciiPrintable(char ch) { return ch >= 32 && ch < 127; } /** - * 是否为ASCII控制符(不可见字符),控制符位于0~31和127 + * 是否为ASCII控制符(不可见字符),控制符位于0~31和127 * *
      *   CharUtils.isAsciiControl('a')  = false
@@ -86,7 +86,7 @@ public static boolean isAsciiPrintable(char ch) {
      * 
* * @param ch 被检查的字符 - * @return true表示为控制符,控制符位于0~31和127 + * @return true表示为控制符, 控制符位于0~31和127 */ public static boolean isAsciiControl(final char ch) { return ch < 32 || ch == 127; @@ -114,7 +114,7 @@ public static boolean isLetter(char ch) { /** *

- * 判断是否为大写字母,大写字母包括A~Z + * 判断是否为大写字母,大写字母包括A~Z *

* *
@@ -127,7 +127,7 @@ public static boolean isLetter(char ch) {
      * 
* * @param ch 被检查的字符 - * @return true表示为大写字母,大写字母包括A~Z + * @return true表示为大写字母, 大写字母包括A~Z */ public static boolean isLetterUpper(final char ch) { return ch >= 'A' && ch <= 'Z'; @@ -135,7 +135,7 @@ public static boolean isLetterUpper(final char ch) { /** *

- * 检查字符是否为小写字母,小写字母指a~z + * 检查字符是否为小写字母,小写字母指a~z *

* *
@@ -148,7 +148,7 @@ public static boolean isLetterUpper(final char ch) {
      * 
* * @param ch 被检查的字符 - * @return true表示为小写字母,小写字母指a~z + * @return true表示为小写字母, 小写字母指a~z */ public static boolean isLetterLower(final char ch) { return ch >= 'a' && ch <= 'z'; @@ -156,7 +156,7 @@ public static boolean isLetterLower(final char ch) { /** *

- * 检查是否为数字字符,数字字符指0~9 + * 检查是否为数字字符,数字字符指0~9 *

* *
@@ -169,14 +169,14 @@ public static boolean isLetterLower(final char ch) {
      * 
* * @param ch 被检查的字符 - * @return true表示为数字字符,数字字符指0~9 + * @return true表示为数字字符, 数字字符指0~9 */ public static boolean isNumber(char ch) { return ch >= '0' && ch <= '9'; } /** - * 是否为16进制规范的字符,判断是否为如下字符 + * 是否为16进制规范的字符,判断是否为如下字符 *
      * 1. 0~9
      * 2. a~f
@@ -191,7 +191,7 @@ public static boolean isHexChar(char c) {
     }
 
     /**
-     * 是否为字符或数字,包括A~Z、a~z、0~9
+     * 是否为字符或数字,包括A~Z、a~z、0~9
      *
      * 
      *   CharUtils.isLetterOrNumber('a')  = true
@@ -203,7 +203,7 @@ public static boolean isHexChar(char c) {
      * 
* * @param ch 被检查的字符 - * @return true表示为字符或数字,包括A~Z、a~z、0~9 + * @return true表示为字符或数字, 包括A~Z、a~z、0~9 */ public static boolean isLetterOrNumber(final char ch) { return isLetter(ch) || isNumber(ch); @@ -211,7 +211,7 @@ public static boolean isLetterOrNumber(final char ch) { /** - * 给定类名是否为字符类,字符类包括: + * 给定类名是否为字符类,字符类包括: * *
      * Character.class
@@ -226,7 +226,7 @@ public static boolean isCharClass(Class clazz) {
     }
 
     /**
-     * 给定对象对应的类是否为字符类,字符类包括:
+     * 给定对象对应的类是否为字符类,字符类包括:
      *
      * 
      * Character.class
@@ -299,7 +299,7 @@ public static boolean equals(char c1, char c2, boolean ignoreCase) {
 
     /**
      * 字符转为字符串
-     * 如果为ASCII字符,使用缓存
+     * 如果为ASCII字符,使用缓存
      *
      * @param c 字符
      * @return 字符串
@@ -311,7 +311,7 @@ public static String toString(char c) {
 
     /**
      * 是否为Windows或者Linux(Unix)文件分隔符
-     * Windows平台下分隔符为\,Linux(Unix)为/
+     * Windows平台下分隔符为\,Linux(Unix)为/
      *
      * @param c 字符
      * @return 是否为Windows或者Linux(Unix)文件分隔符
diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/CharsetUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/CharsetUtils.java
index c64580627e..d17d88f16b 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/utils/CharsetUtils.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/utils/CharsetUtils.java
@@ -40,7 +40,7 @@ public class CharsetUtils {
     /**
      * 转换为Charset对象
      *
-     * @param charsetName 字符集,为空则返回默认字符集
+     * @param charsetName 字符集,为空则返回默认字符集
      * @return Charset
      * @throws UnsupportedCharsetException 编码不支持
      */
@@ -52,8 +52,8 @@ public static Charset charset(String charsetName) throws UnsupportedCharsetExcep
      * 转换字符串的字符集编码
      *
      * @param source      字符串
-     * @param srcCharset  源字符集,默认ISO-8859-1
-     * @param destCharset 目标字符集,默认UTF-8
+     * @param srcCharset  源字符集,默认ISO-8859-1
+     * @param destCharset 目标字符集,默认UTF-8
      * @return 转换后的字符集
      */
     public static String convert(String source, String srcCharset, String destCharset) {
@@ -62,17 +62,17 @@ public static String convert(String source, String srcCharset, String destCharse
 
     /**
      * 转换字符串的字符集编码
-     * 当以错误的编码读取为字符串时,打印字符串将出现乱码。
-     * 此方法用于纠正因读取使用编码错误导致的乱码问题。
-     * 例如,在Servlet请求中客户端用GBK编码了请求参数,我们使用UTF-8读取到的是乱码,此时,使用此方法即可还原原编码的内容
+     * 当以错误的编码读取为字符串时,打印字符串将出现乱码
+     * 此方法用于纠正因读取使用编码错误导致的乱码问题
+     * 例如,在Servlet请求中客户端用GBK编码了请求参数,我们使用UTF-8读取到的是乱码,此时,使用此方法即可还原原编码的内容
      * 
      * 客户端 -》 GBK编码 -》 Servlet容器 -》 UTF-8解码 -》 乱码
      * 乱码 -》 UTF-8编码 -》 GBK解码 -》 正确内容
      * 
* * @param source 字符串 - * @param srcCharset 源字符集,默认ISO-8859-1 - * @param destCharset 目标字符集,默认UTF-8 + * @param srcCharset 源字符集,默认ISO-8859-1 + * @param destCharset 目标字符集,默认UTF-8 * @return 转换后的字符集 */ public static String convert(String source, Charset srcCharset, Charset destCharset) { @@ -92,10 +92,10 @@ public static String convert(String source, Charset srcCharset, Charset destChar /** * 转换文件编码 - * 此方法用于转换文件编码,读取的文件实际编码必须与指定的srcCharset编码一致,否则导致乱码 + * 此方法用于转换文件编码,读取的文件实际编码必须与指定的srcCharset编码一致,否则导致乱码 * * @param file 文件 - * @param srcCharset 原文件的编码,必须与文件内容的编码保持一致 + * @param srcCharset 原文件的编码,必须与文件内容的编码保持一致 * @param destCharset 转码后的编码 * @return 被转换编码的文件 * @since 3.1.9 @@ -125,7 +125,7 @@ public static Charset defaultCharset() { /** - * 系统字符集编码,如果是Windows,则默认为GBK编码,否则取 {@link CharsetUtils#defaultCharsetName()} + * 系统字符集编码,如果是Windows,则默认为GBK编码,否则取 {@link CharsetUtils#defaultCharsetName()} * * @return 系统字符集编码 * @see CharsetUtils#defaultCharsetName() @@ -136,7 +136,7 @@ public static String systemCharsetName() { } /** - * 系统字符集编码,如果是Windows,则默认为GBK编码,否则取 {@link CharsetUtils#defaultCharsetName()} + * 系统字符集编码,如果是Windows,则默认为GBK编码,否则取 {@link CharsetUtils#defaultCharsetName()} * * @return 系统字符集编码 * @see CharsetUtils#defaultCharsetName() diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/CitizenIdUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/CitizenIdUtils.java index 5d3239f0f1..0daf2af278 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/CitizenIdUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/CitizenIdUtils.java @@ -43,11 +43,11 @@ public class CitizenIdUtils { /** - * 中国公民身份证号码最小长度。 + * 中国公民身份证号码最小长度 */ private static final int CHINA_ID_MIN_LENGTH = 15; /** - * 中国公民身份证号码最大长度。 + * 中国公民身份证号码最大长度 */ private static final int CHINA_ID_MAX_LENGTH = 18; /** @@ -132,9 +132,9 @@ public class CitizenIdUtils { twFirstCode.put("O", 35); hkFirstCode.put("A", 1);// 持证人拥有香港居留权 - hkFirstCode.put("B", 2);// 持证人所报称的出生日期或地点自首次登记以后,曾作出更改 + hkFirstCode.put("B", 2);// 持证人所报称的出生日期或地点自首次登记以后,曾作出更改 hkFirstCode.put("C", 3);// 持证人登记领证时在香港的居留受到入境事务处处长的限制 - hkFirstCode.put("N", 14);// 持证人所报的姓名自首次登记以后,曾作出更改 + hkFirstCode.put("N", 14);// 持证人所报的姓名自首次登记以后,曾作出更改 hkFirstCode.put("O", 15);// 持证人报称在香港、澳门及中国以外其他地区或国家出生 hkFirstCode.put("R", 18);// 持证人拥有香港入境权 hkFirstCode.put("U", 21);// 持证人登记领证时在香港的居留不受入境事务处处长的限制 @@ -161,7 +161,7 @@ public static String convert15To18(String idCard) { // 获取出生年(完全表现形式,如:2010) int sYear = DateUtils.year(birthDate); if (sYear > 2000) { - // 2000年之后不存在15位身份证号,此处用于修复此问题的判断 + // 2000年之后不存在15位身份证号,此处用于修复此问题的判断 sYear -= 100; } idCard18 = new StringBuilder().append(idCard, 0, 6).append(sYear).append(idCard.substring(8)); @@ -177,7 +177,7 @@ public static String convert15To18(String idCard) { /** * 是否有效身份证号 * - * @param idCard 身份证号,支持18位、15位和港澳台的10位 + * @param idCard 身份证号,支持18位、15位和港澳台的10位 * @return 是否有效 */ public static boolean isValidCard(String idCard) { @@ -188,7 +188,7 @@ public static boolean isValidCard(String idCard) { return isvalidCard18(idCard); case 15:// 15位身份证 return isvalidCard15(idCard); - case 10: {// 10位身份证,港澳台地区 + case 10: {// 10位身份证,港澳台地区 String[] cardval = isValidCard10(idCard); return null != cardval && cardval[2].equals("true"); } @@ -201,10 +201,10 @@ public static boolean isValidCard(String idCard) { *

* 判断18位身份证的合法性 *

- * 根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。 - * 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 + * 根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成 + * 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码 *

- * 顺序码: 表示在同一地址码所标识的区域范围内,对同年、同月、同 日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配 给女性。 + * 顺序码: 表示在同一地址码所标识的区域范围内,对同年、同月、同 日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配 给女性 *

*
    *
  1. 第1、2位数字表示:所在省份的代码
  2. @@ -212,17 +212,17 @@ public static boolean isValidCard(String idCard) { *
  3. 第5、6位数字表示:所在区县的代码
  4. *
  5. 第7~14位数字表示:出生年、月、日
  6. *
  7. 第15、16位数字表示:所在地的派出所的代码
  8. - *
  9. 第17位数字表示性别:奇数表示男性,偶数表示女性
  10. - *
  11. 第18位数字是校检码,用来检验身份证的正确性。校检码可以是0~9的数字,有时也用x表示
  12. + *
  13. 第17位数字表示性别:奇数表示男性,偶数表示女性
  14. + *
  15. 第18位数字是校检码,用来检验身份证的正确性 校检码可以是0~9的数字,有时也用x表示
  16. *
*

* 第十八位数字(校验码)的计算方法为: *

    - *
  1. 将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
  2. + *
  3. 将前面的身份证号码17位数分别乘以不同的系数 从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
  4. *
  5. 将这17位数字和系数相乘的结果相加
  6. - *
  7. 用加出来和除以11,看余数是多少
  8. - *
  9. 余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字。其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2
  10. - *
  11. 通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2
  12. + *
  13. 用加出来和除以11,看余数是多少
  14. + *
  15. 余数只可能有0 1 2 3 4 5 6 7 8 9 10这11个数字 其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2
  16. + *
  17. 通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ 如果余数是10,身份证的最后一位号码就是2
  18. *
* * @param idCard 待验证的身份证 @@ -342,12 +342,12 @@ public static boolean isValidTWCard(String idCard) { } /** - * 验证香港身份证号码(存在Bug,部份特殊身份证无法检查) + * 验证香港身份证号码(存在Bug,部份特殊身份证无法检查) *

- * 身份证前2位为英文字符,如果只出现一个英文字符则表示第一位是空格,对应数字58 前2位英文字符A-Z分别对应数字10-35 最后一位校验码为0-9的数字加上字符"A","A"代表10 + * 身份证前2位为英文字符,如果只出现一个英文字符则表示第一位是空格,对应数字58 前2位英文字符A-Z分别对应数字10-35 最后一位校验码为0-9的数字加上字符"A","A"代表10 *

*

- * 将身份证号码全部转换为数字,分别对应乘9-1相加的总和,整除11则证件号码有效 + * 将身份证号码全部转换为数字,分别对应乘9-1相加的总和,整除11则证件号码有效 *

* * @param idCard 身份证号码 @@ -379,7 +379,7 @@ public static boolean isValidHKCard(String idCard) { } /** - * 根据身份编号获取生日,只支持15或18位身份证号码 + * 根据身份编号获取生日,只支持15或18位身份证号码 * * @param idCard 身份编号 * @return 生日(yyyyMMdd) @@ -390,7 +390,7 @@ public static String getBirthByIdCard(String idCard) { } /** - * 根据身份编号获取生日,只支持15或18位身份证号码 + * 根据身份编号获取生日,只支持15或18位身份证号码 * * @param idCard 身份编号 * @return 生日(yyyyMMdd) @@ -406,7 +406,7 @@ public static String getBirth(String idCard) { } /** - * 从身份证号码中获取生日日期,只支持15或18位身份证号码 + * 从身份证号码中获取生日日期,只支持15或18位身份证号码 * * @param idCard 身份证号码 * @return 日期 @@ -417,7 +417,7 @@ public static DateTime getBirthDate(String idCard) { } /** - * 根据身份编号获取年龄,只支持15或18位身份证号码 + * 根据身份编号获取年龄,只支持15或18位身份证号码 * * @param idCard 身份编号 * @return 年龄 @@ -427,10 +427,10 @@ public static int getAgeByIdCard(String idCard) { } /** - * 根据身份编号获取指定日期当时的年龄年龄,只支持15或18位身份证号码 + * 根据身份编号获取指定日期当时的年龄年龄,只支持15或18位身份证号码 * * @param idCard 身份编号 - * @param dateToCompare 以此日期为界,计算年龄。 + * @param dateToCompare 以此日期为界,计算年龄 * @return 年龄 */ public static int getAgeByIdCard(String idCard, Date dateToCompare) { @@ -439,7 +439,7 @@ public static int getAgeByIdCard(String idCard, Date dateToCompare) { } /** - * 根据身份编号获取生日年,只支持15或18位身份证号码 + * 根据身份编号获取生日年,只支持15或18位身份证号码 * * @param idCard 身份编号 * @return 生日(yyyy) @@ -455,7 +455,7 @@ public static Short getYearByIdCard(String idCard) { } /** - * 根据身份编号获取生日月,只支持15或18位身份证号码 + * 根据身份编号获取生日月,只支持15或18位身份证号码 * * @param idCard 身份编号 * @return 生日(MM) @@ -471,7 +471,7 @@ public static Short getMonthByIdCard(String idCard) { } /** - * 根据身份编号获取生日天,只支持15或18位身份证号码 + * 根据身份编号获取生日天,只支持15或18位身份证号码 * * @param idCard 身份编号 * @return 生日(dd) @@ -487,10 +487,10 @@ public static Short getDayByIdCard(String idCard) { } /** - * 根据身份编号获取性别,只支持15或18位身份证号码 + * 根据身份编号获取性别,只支持15或18位身份证号码 * * @param idCard 身份编号 - * @return 性别(1 : 男 , 0 : 女) + * @return 性别(1 : 男, 0 : 女) */ public static int getGenderByIdCard(String idCard) { Assert.notBlank(idCard); @@ -513,10 +513,10 @@ public static int getGenderByIdCard(String idCard) { } /** - * 根据身份编号获取户籍省份,只支持15或18位身份证号码 + * 根据身份编号获取户籍省份,只支持15或18位身份证号码 * * @param idCard 身份编码 - * @return 省级编码。 + * @return 省级编码 */ public static String getProvinceByIdCard(String idCard) { int len = idCard.length(); @@ -588,10 +588,10 @@ private static char getCheckCode18(int iSum) { } /** - * 将身份证的每位和对应位的加权因子相乘之后,再得到和值 + * 将身份证的每位和对应位的加权因子相乘之后,再得到和值 * * @param iArr - * @return 身份证编码。 + * @return 身份证编码 */ private static int getPowerSum(char[] iArr) { int iSum = 0; diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/ClassUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/ClassUtils.java index 9a623e4989..03ac222d6e 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/ClassUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/ClassUtils.java @@ -53,7 +53,7 @@ public class ClassUtils { /** - * 原始类型名和其class对应表,例如:int =》 int.class + * 原始类型名和其class对应表,例如:int =》 int.class */ private static final Map> primitiveWrapperMap = new HashMap<>(); private static final Map, Class> wrapperPrimitiveMap = new HashMap<>(); @@ -82,8 +82,8 @@ public class ClassUtils { * {@code null}安全的获取对象类型 * * @param 对象类型 - * @param obj 对象,如果为{@code null} 返回{@code null} - * @return 对象类型,提供对象如果为{@code null} 返回{@code null} + * @param obj 对象,如果为{@code null} 返回{@code null} + * @return 对象类型, 提供对象如果为{@code null} 返回{@code null} */ public static Class getClass(T obj) { return ((null == obj) ? null : (Class) obj.getClass()); @@ -93,7 +93,7 @@ public static Class getClass(T obj) { * 获取类名 * * @param obj 获取类名对象 - * @param isSimple 是否简单类名,如果为true,返回不带包名的类名 + * @param isSimple 是否简单类名,如果为true,返回不带包名的类名 * @return 类名 * @since 3.0.7 */ @@ -116,7 +116,7 @@ public static String getClassName(Object obj, boolean isSimple) { *
* * @param clazz 类 - * @param isSimple 是否简单类名,如果为true,返回不带包名的类名 + * @param isSimple 是否简单类名,如果为true,返回不带包名的类名 * @return 类名 * @since 3.0.7 */ @@ -130,7 +130,7 @@ public static String getClassName(Class clazz, boolean isSimple) { /** * 获得对象数组的类数组 * - * @param objects 对象数组,如果数组中存在{@code null}元素,则此元素被认为是Object类型 + * @param objects 对象数组,如果数组中存在{@code null}元素,则此元素被认为是Object类型 * @return 类数组 */ public static Class[] getClasses(Object... objects) { @@ -147,7 +147,7 @@ public static Class[] getClasses(Object... objects) { * 指定类是否与给定的类名相同 * * @param clazz 类 - * @param className 类名,可以是全类名(包含包名),也可以是简单类名(不包含包名) + * @param className 类名,可以是全类名(包含包名),也可以是简单类名(不包含包名) * @param ignoreCase 是否忽略大小写 * @return 指定类是否与给定的类名相同 * @since 3.0.7 @@ -280,7 +280,7 @@ public static Set getDeclaredMethodNames(Class clazz) { } /** - * 获得声明的所有方法,包括本类及其父类和接口的所有方法和Object类的方法 + * 获得声明的所有方法,包括本类及其父类和接口的所有方法和Object类的方法 * * @param clazz 类 * @return 方法数组 @@ -290,7 +290,7 @@ public static Method[] getDeclaredMethods(Class clazz) { } /** - * 查找指定对象中的所有方法(包括非public方法),也包括父对象和Object类的方法 + * 查找指定对象中的所有方法(包括非public方法),也包括父对象和Object类的方法 * * @param obj 被查找的对象 * @param methodName 方法名 @@ -303,7 +303,7 @@ public static Method getDeclaredMethodOfObj(Object obj, String methodName, Objec } /** - * 查找指定类中的所有方法(包括非public方法),也包括父类和Object类的方法 找不到方法会返回null + * 查找指定类中的所有方法(包括非public方法),也包括父类和Object类的方法 找不到方法会返回null * * @param clazz 被查找的类 * @param methodName 方法名 @@ -316,7 +316,7 @@ public static Method getDeclaredMethod(Class clazz, String methodName, Class< } /** - * 查找指定类中的所有字段(包括非public字段), 字段不存在则返回null + * 查找指定类中的所有字段(包括非public字段), 字段不存在则返回null * * @param clazz 被查找字段的类 * @param fieldName 字段名 @@ -349,7 +349,7 @@ public static Field[] getDeclaredFields(Class clazz) throws SecurityException } /** - * @return 获得Java ClassPath路径,不包括 jre + * @return 获得Java ClassPath路径,不包括 jre */ public static String[] getJavaClassPaths() { String[] classPaths = System.getProperty("java.class.path").split(System.getProperty("path.separator")); @@ -357,7 +357,7 @@ public static String[] getJavaClassPaths() { } /** - * 比较判断types1和types2两组类,如果types1中所有的类都与types2对应位置的类相同,或者是其父类或接口,则返回true + * 比较判断types1和types2两组类,如果types1中所有的类都与types2对应位置的类相同,或者是其父类或接口,则返回true * * @param types1 类组1 * @param types2 类组2 @@ -390,13 +390,13 @@ public static boolean isAllAssignableFrom(Class[] types1, Class[] types2) /** * 执行方法
- * 可执行Private方法,也可执行static方法
- * 执行非static方法时,必须满足对象有默认构造方法
- * 非单例模式,如果是非静态方法,每次创建一个新对象 + * 可执行Private方法,也可执行static方法
+ * 执行非static方法时,必须满足对象有默认构造方法
+ * 非单例模式,如果是非静态方法,每次创建一个新对象 * * @param 对象类型 - * @param classNameWithMethodName 类名和方法名表达式,类名与方法名用.#连接 例如:com.xiaoleilu.hutool.StrUtil.isEmpty 或 com.xiaoleilu.hutool.StrUtil#isEmpty - * @param args 参数,必须严格对应指定方法的参数类型和数量 + * @param classNameWithMethodName 类名和方法名表达式,类名与方法名用.#连接 例如:com.xiaoleilu.hutool.StrUtil.isEmpty 或 com.xiaoleilu.hutool.StrUtil#isEmpty + * @param args 参数,必须严格对应指定方法的参数类型和数量 * @return 返回结果 */ public static T invoke(String classNameWithMethodName, Object[] args) { @@ -405,13 +405,13 @@ public static T invoke(String classNameWithMethodName, Object[] args) { /** * 执行方法
- * 可执行Private方法,也可执行static方法
- * 执行非static方法时,必须满足对象有默认构造方法
+ * 可执行Private方法,也可执行static方法
+ * 执行非static方法时,必须满足对象有默认构造方法
* * @param 对象类型 - * @param classNameWithMethodName 类名和方法名表达式,例如:com.xiaoleilu.hutool.StrUtil#isEmpty或com.xiaoleilu.hutool.StrUtil.isEmpty - * @param isSingleton 是否为单例对象,如果此参数为false,每次执行方法时创建一个新对象 - * @param args 参数,必须严格对应指定方法的参数类型和数量 + * @param classNameWithMethodName 类名和方法名表达式,例如:com.xiaoleilu.hutool.StrUtil#isEmpty或com.xiaoleilu.hutool.StrUtil.isEmpty + * @param isSingleton 是否为单例对象,如果此参数为false,每次执行方法时创建一个新对象 + * @param args 参数,必须严格对应指定方法的参数类型和数量 * @return 返回结果 */ public static T invoke(String classNameWithMethodName, boolean isSingleton, Object... args) { @@ -435,14 +435,14 @@ public static T invoke(String classNameWithMethodName, boolean isSingleton, /** * 执行方法
- * 可执行Private方法,也可执行static方法
- * 执行非static方法时,必须满足对象有默认构造方法
- * 非单例模式,如果是非静态方法,每次创建一个新对象 + * 可执行Private方法,也可执行static方法
+ * 执行非static方法时,必须满足对象有默认构造方法
+ * 非单例模式,如果是非静态方法,每次创建一个新对象 * * @param 对象类型 - * @param className 类名,完整类路径 + * @param className 类名,完整类路径 * @param methodName 方法名 - * @param args 参数,必须严格对应指定方法的参数类型和数量 + * @param args 参数,必须严格对应指定方法的参数类型和数量 * @return 返回结果 */ public static T invoke(String className, String methodName, Object[] args) { @@ -451,14 +451,14 @@ public static T invoke(String className, String methodName, Object[] args) { /** * 执行方法
- * 可执行Private方法,也可执行static方法
- * 执行非static方法时,必须满足对象有默认构造方法
+ * 可执行Private方法,也可执行static方法
+ * 执行非static方法时,必须满足对象有默认构造方法
* * @param 对象类型 - * @param className 类名,完整类路径 + * @param className 类名,完整类路径 * @param methodName 方法名 - * @param isSingleton 是否为单例对象,如果此参数为false,每次执行方法时创建一个新对象 - * @param args 参数,必须严格对应指定方法的参数类型和数量 + * @param isSingleton 是否为单例对象,如果此参数为false,每次执行方法时创建一个新对象 + * @param args 参数,必须严格对应指定方法的参数类型和数量 * @return 返回结果 */ public static T invoke(String className, String methodName, boolean isSingleton, Object... args) { @@ -533,7 +533,7 @@ public static boolean isSimpleValueType(Class clazz) { /** * 检查目标类是否可以从原类转化 * 转化包括: - * 1、原类是对象,目标类型是原类型实现的接口 + * 1、原类是对象,目标类型是原类型实现的接口 * 2、目标类型是原类型的父类 * 3、两者是原始类型或者包装类型(相互转换) * @@ -548,7 +548,7 @@ public static boolean isAssignable(final Class[] classArray, final Class.. /** * 检查目标类是否可以从原类转化 * 转化包括: - * 1、原类是对象,目标类型是原类型实现的接口 + * 1、原类是对象,目标类型是原类型实现的接口 * 2、目标类型是原类型的父类 * 3、两者是原始类型或者包装类型(相互转换) * @@ -563,7 +563,7 @@ public static boolean isAssignable(final Class classArray, final Class toC /** * 检查目标类是否可以从原类转化 * 转化包括: - * 1、原类是对象,目标类型是原类型实现的接口 + * 1、原类是对象,目标类型是原类型实现的接口 * 2、目标类型是原类型的父类 * 3、两者是原始类型或者包装类型(相互转换) * @@ -782,7 +782,7 @@ public static boolean isEnum(Class clazz) { /** * 获得给定类的第一个泛型参数 * - * @param clazz 被检查的类,必须是已经确定泛型类型的类 + * @param clazz 被检查的类,必须是已经确定泛型类型的类 * @return {@link Class} */ public static Class getTypeArgument(Class clazz) { @@ -792,8 +792,8 @@ public static Class getTypeArgument(Class clazz) { /** * 获得给定类的泛型参数 * - * @param clazz 被检查的类,必须是已经确定泛型类型的类 - * @param index 泛型类型的索引号,既第几个泛型类型 + * @param clazz 被检查的类,必须是已经确定泛型类型的类 + * @param index 泛型类型的索引号,既第几个泛型类型 * @return {@link Class} */ public static Class getTypeArgument(Class clazz, int index) { @@ -839,7 +839,7 @@ public static String getPackagePath(Class clazz) { * 获取指定类型分的默认值 * 默认值规则为: *
-     * 1、如果为原始类型,返回0
+     * 1、如果为原始类型,返回0
      * 2、非原始类型返回{@code null}
      * 
* @@ -905,7 +905,7 @@ public static boolean isBean(Class clazz) { } /** - * 对象转Map,不进行驼峰转下划线,不忽略值为空的字段 + * 对象转Map,不进行驼峰转下划线,不忽略值为空的字段 * * @param bean bean对象 * @return Map @@ -952,18 +952,18 @@ public String edit(String key) { /** * 对象转Map - * 通过实现{@link Editor} 可以自定义字段值,如果这个Editor返回null则忽略这个字段,以便实现: + * 通过实现{@link Editor} 可以自定义字段值,如果这个Editor返回null则忽略这个字段,以便实现: * *
-     * 1. 字段筛选,可以去除不需要的字段
-     * 2. 字段变换,例如实现驼峰转下划线
+     * 1. 字段筛选,可以去除不需要的字段
+     * 2. 字段变换,例如实现驼峰转下划线
      * 3. 自定义字段前缀或后缀等等
      * 
* * @param bean bean对象 * @param targetMap 目标的Map * @param ignoreNullValue 是否忽略值为空的字段 - * @param keyEditor 属性字段(Map的key)编辑器,用于筛选、编辑key + * @param keyEditor 属性字段(Map的key)编辑器,用于筛选、编辑key * @return Map */ public static Map beanToMap(Object bean, Map targetMap, boolean ignoreNullValue, Editor keyEditor) { @@ -1033,7 +1033,7 @@ public static ClassLoader getClassLoader() { } /** - * 获得ClassPath,将编码后的中文路径解码为原字符 + * 获得ClassPath,将编码后的中文路径解码为原字符 * 这个ClassPath路径会文件路径被标准化处理 * * @return ClassPath @@ -1043,7 +1043,7 @@ public static String getClassPath() { } /** - * 获得ClassPath,这个ClassPath路径会文件路径被标准化处理 + * 获得ClassPath,这个ClassPath路径会文件路径被标准化处理 * * @param isEncoded 是否编码路径中的中文 * @return ClassPath @@ -1065,7 +1065,7 @@ public static URL getClassPathURL() { /** * 获得资源的URL - * 路径用/分隔,例如: + * 路径用/分隔,例如: * *
      * config/a/db.config
@@ -1087,7 +1087,7 @@ public static URL getResourceURL(String resource) throws InstrumentException {
      * @param            Bean类型
      * @param bean          Bean
      * @param valueProvider 值提供者
-     * @param copyOptions   拷贝选项,见 {@link CopyOptions}
+     * @param copyOptions   拷贝选项,见 {@link CopyOptions}
      * @return Bean
      */
     public static  T fillBean(T bean, ValueProvider valueProvider, CopyOptions copyOptions) {
@@ -1108,13 +1108,13 @@ public static ClassLoader getContextClassLoader() {
     }
 
     /**
-     * 加载类,通过传入类的字符串,返回其对应的类名,使用默认ClassLoader并初始化类(调用static模块内容和初始化static属性)
-     * 扩展{@link Class#forName(String, boolean, ClassLoader)}方法,支持以下几类类名的加载:
+     * 加载类,通过传入类的字符串,返回其对应的类名,使用默认ClassLoader并初始化类(调用static模块内容和初始化static属性)
+     * 扩展{@link Class#forName(String, boolean, ClassLoader)}方法,支持以下几类类名的加载:
      *
      * 
-     * 1、原始类型,例如:int
-     * 2、数组类型,例如:int[]、Long[]、String[]
-     * 3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
+     * 1、原始类型,例如:int
+     * 2、数组类型,例如:int[]、Long[]、String[]
+     * 3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
      * 
* * @param 对象 @@ -1127,13 +1127,13 @@ public static Class loadClass(String name) throws InstrumentException { } /** - * 加载类,通过传入类的字符串,返回其对应的类名,使用默认ClassLoader - * 扩展{@link Class#forName(String, boolean, ClassLoader)}方法,支持以下几类类名的加载: + * 加载类,通过传入类的字符串,返回其对应的类名,使用默认ClassLoader + * 扩展{@link Class#forName(String, boolean, ClassLoader)}方法,支持以下几类类名的加载: * *
-     * 1、原始类型,例如:int
-     * 2、数组类型,例如:int[]、Long[]、String[]
-     * 3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
+     * 1、原始类型,例如:int
+     * 2、数组类型,例如:int[]、Long[]、String[]
+     * 3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
      * 
* * @param 对象 @@ -1147,19 +1147,19 @@ public static Class loadClass(String name, boolean isInitialized) throws } /** - * 加载类,通过传入类的字符串,返回其对应的类名 - * 此方法支持缓存,第一次被加载的类之后会读取缓存中的类 + * 加载类,通过传入类的字符串,返回其对应的类名 + * 此方法支持缓存,第一次被加载的类之后会读取缓存中的类 * 加载失败的原因可能是此类不存在或其关联引用类不存在 - * 扩展{@link Class#forName(String, boolean, ClassLoader)}方法,支持以下几类类名的加载: + * 扩展{@link Class#forName(String, boolean, ClassLoader)}方法,支持以下几类类名的加载: * *
-     * 1、原始类型,例如:int
-     * 2、数组类型,例如:int[]、Long[]、String[]
-     * 3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
+     * 1、原始类型,例如:int
+     * 2、数组类型,例如:int[]、Long[]、String[]
+     * 3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
      * 
* * @param name 类名 - * @param classLoader {@link ClassLoader},{@code null} 则使用系统默认ClassLoader + * @param classLoader {@link ClassLoader},{@code null} 则使用系统默认ClassLoader * @param isInitialized 是否初始化类(调用static模块内容和初始化static属性) * @return 类名对应的类 * @throws InstrumentException 没有类名对应的类时抛出此异常 @@ -1199,7 +1199,7 @@ public static Class loadClass(String name, ClassLoader classLoader, boolean i try { clazz = Class.forName(name, isInitialized, classLoader); } catch (ClassNotFoundException ex) { - // 尝试获取内部类,例如java.lang.Thread.State =》java.lang.Thread$State + // 尝试获取内部类,例如java.lang.Thread.State =》java.lang.Thread$State clazz = tryLoadInnerClass(name, classLoader, isInitialized); if (null == clazz) { throw new InstrumentException(ex); @@ -1212,9 +1212,9 @@ public static Class loadClass(String name, ClassLoader classLoader, boolean i } /** - * 加载原始类型的类。包括原始类型、原始类型数组和void + * 加载原始类型的类 包括原始类型、原始类型数组和void * - * @param name 原始类型名,比如 int + * @param name 原始类型名,比如 int * @return 原始类型类 */ public static Class loadPrimitiveClass(String name) { @@ -1229,7 +1229,7 @@ public static Class loadPrimitiveClass(String name) { } /** - * 创建新的{@link JarLoaders},并使用此Classloader加载目录下的class文件和jar文件 + * 创建新的{@link JarLoaders},并使用此Classloader加载目录下的class文件和jar文件 * * @param jarOrDir jar文件或者包含jar和class文件的目录 * @return {@link JarLoaders} @@ -1254,8 +1254,8 @@ public static Class loadClass(File jarOrDir, String name) { } /** - * 指定类是否被提供,使用默认ClassLoader - * 通过调用{@link #loadClass(String, ClassLoader, boolean)}方法尝试加载指定类名的类,如果加载失败返回false + * 指定类是否被提供,使用默认ClassLoader + * 通过调用{@link #loadClass(String, ClassLoader, boolean)}方法尝试加载指定类名的类,如果加载失败返回false * 加载失败的原因可能是此类不存在或其关联引用类不存在 * * @param className 类名 @@ -1267,7 +1267,7 @@ public static boolean isPresent(String className) { /** * 指定类是否被提供 - * 通过调用{@link #loadClass(String, ClassLoader, boolean)}方法尝试加载指定类名的类,如果加载失败返回false + * 通过调用{@link #loadClass(String, ClassLoader, boolean)}方法尝试加载指定类名的类,如果加载失败返回false * 加载失败的原因可能是此类不存在或其关联引用类不存在 * * @param className 类名 @@ -1284,22 +1284,22 @@ public static boolean isPresent(String className, ClassLoader classLoader) { } /** - * 尝试转换并加载内部类,例如java.lang.Thread.State =》java.lang.Thread$State + * 尝试转换并加载内部类,例如java.lang.Thread.State =》java.lang.Thread$State * * @param name 类名 - * @param classLoader {@link ClassLoader},{@code null} 则使用系统默认ClassLoader + * @param classLoader {@link ClassLoader},{@code null} 则使用系统默认ClassLoader * @param isInitialized 是否初始化类(调用static模块内容和初始化static属性) * @return 类名对应的类 */ private static Class tryLoadInnerClass(String name, ClassLoader classLoader, boolean isInitialized) { - // 尝试获取内部类,例如java.lang.Thread.State =》java.lang.Thread$State + // 尝试获取内部类,例如java.lang.Thread.State =》java.lang.Thread$State final int lastDotIndex = name.lastIndexOf(Symbol.C_DOT); - if (lastDotIndex > 0) {// 类与内部类的分隔符不能在第一位,因此>0 + if (lastDotIndex > 0) {// 类与内部类的分隔符不能在第一位,因此>0 final String innerClassName = name.substring(0, lastDotIndex) + Symbol.C_DOLLAR + name.substring(lastDotIndex + 1); try { return Class.forName(innerClassName, isInitialized, classLoader); } catch (ClassNotFoundException ex2) { - // 尝试获取内部类失败时,忽略之。 + // 尝试获取内部类失败时,忽略之 } } return null; @@ -1879,7 +1879,7 @@ public static String getClassVar(final String className) { /** * 获取类所有的字段信息 * ps: 这个方法有个问题 如果子类和父类有相同的字段 会不会重复 - * 1. 还会获取到 serialVersionUID 这个字段。 + * 1. 还会获取到 serialVersionUID 这个字段 * * @param clazz 类 * @return 字段列表 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/ClipboardUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/ClipboardUtils.java index d1783e7ffc..d815430146 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/ClipboardUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/ClipboardUtils.java @@ -49,8 +49,8 @@ public static void set(Transferable contents, ClipboardOwner owner) { /** * 获取剪贴板内容 * - * @param flavor 数据元信息,标识数据类型 - * @return 剪贴板内容,类型根据flavor不同而不同 + * @param flavor 数据元信息,标识数据类型 + * @return 剪贴板内容, 类型根据flavor不同而不同 */ public static Object get(DataFlavor flavor) { return get(getClipboard().getContents(null), flavor); @@ -60,8 +60,8 @@ public static Object get(DataFlavor flavor) { * 获取剪贴板内容 * * @param content {@link Transferable} - * @param flavor 数据元信息,标识数据类型 - * @return 剪贴板内容,类型根据flavor不同而不同 + * @param flavor 数据元信息,标识数据类型 + * @return 剪贴板内容, 类型根据flavor不同而不同 */ public static Object get(Transferable content, DataFlavor flavor) { if (null != content && content.isDataFlavorSupported(flavor)) { @@ -155,7 +155,7 @@ public static void listen(ClipboardListener listener, boolean sync) { * 监听剪贴板修改事件 * * @param tryCount 尝试获取剪贴板内容的次数 - * @param delay 响应延迟,当从第二次开始,延迟一定毫秒数等待剪贴板可以获取 + * @param delay 响应延迟,当从第二次开始,延迟一定毫秒数等待剪贴板可以获取 * @param listener 监听处理接口 * @param sync 是否同步阻塞 * @see ClipboardMonitor#listen(boolean) diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/CollUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/CollUtils.java index 51d52d3556..497451d5ae 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/CollUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/CollUtils.java @@ -55,14 +55,14 @@ public class CollUtils { /** * 两个集合的并集 - * 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最多的个数 - * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] - * 结果:[a, b, c, c, c],此结果中只保留了三个c + * 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最多的个数 + * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] + * 结果:[a, b, c, c, c],此结果中只保留了三个c * * @param 集合元素类型 * @param coll1 集合1 * @param coll2 集合2 - * @return 并集的集合,返回 {@link ArrayList} + * @return 并集的集合, 返回 {@link ArrayList} */ public static Collection union(final Collection coll1, final Collection coll2) { final ArrayList list = new ArrayList<>(); @@ -88,15 +88,15 @@ public static Collection union(final Collection coll1, final Collectio /** * 多个集合的并集 - * 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最多的个数 - * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] - * 结果:[a, b, c, c, c],此结果中只保留了三个c + * 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最多的个数 + * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] + * 结果:[a, b, c, c, c],此结果中只保留了三个c * * @param 集合元素类型 * @param coll1 集合1 * @param coll2 集合2 * @param otherColls 其它集合 - * @return 并集的集合,返回 {@link ArrayList} + * @return 并集的集合, 返回 {@link ArrayList} */ public static Collection union(final Collection coll1, final Collection coll2, final Collection... otherColls) { Collection union = union(coll1, coll2); @@ -108,14 +108,14 @@ public static Collection union(final Collection coll1, final Collectio /** * 两个集合的交集 - * 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最少的个数 - * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] - * 结果:[a, b, c, c],此结果中只保留了两个c + * 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最少的个数 + * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] + * 结果:[a, b, c, c],此结果中只保留了两个c * * @param 集合元素类型 * @param coll1 集合1 * @param coll2 集合2 - * @return 交集的集合,返回 {@link ArrayList} + * @return 交集的集合, 返回 {@link ArrayList} */ public static Collection intersection(final Collection coll1, final Collection coll2) { final ArrayList list = new ArrayList<>(); @@ -136,15 +136,15 @@ public static Collection intersection(final Collection coll1, final Co /** * 多个集合的交集 - * 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最少的个数 - * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] - * 结果:[a, b, c, c],此结果中只保留了两个c + * 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留最少的个数 + * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] + * 结果:[a, b, c, c],此结果中只保留了两个c * * @param 集合元素类型 * @param coll1 集合1 * @param coll2 集合2 * @param otherColls 其它集合 - * @return 并集的集合,返回 {@link ArrayList} + * @return 并集的集合, 返回 {@link ArrayList} */ public static Collection intersection(final Collection coll1, final Collection coll2, final Collection... otherColls) { Collection intersection = intersection(coll1, coll2); @@ -162,16 +162,16 @@ public static Collection intersection(final Collection coll1, final Co /** * 两个集合的差集 - * 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留两个集合中此元素个数差的个数 - * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] - * 结果:[c],此结果中只保留了一个 - * 任意一个集合为空,返回另一个集合 + * 针对一个集合中存在多个相同元素的情况,计算两个集合中此元素的个数,保留两个集合中此元素个数差的个数 + * 例如:集合1:[a, b, c, c, c],集合2:[a, b, c, c] + * 结果:[c],此结果中只保留了一个 + * 任意一个集合为空,返回另一个集合 * 两个集合无交集则返回两个集合的组合 * * @param 集合元素类型 * @param coll1 集合1 * @param coll2 集合2 - * @return 差集的集合,返回 {@link ArrayList} + * @return 差集的集合, 返回 {@link ArrayList} */ public static Collection disjunction(final Collection coll1, final Collection coll2) { if (isEmpty(coll1)) { @@ -197,12 +197,12 @@ public static Collection disjunction(final Collection coll1, final Col } /** - * 检查给定数组是否包含给定元素。 + * 检查给定数组是否包含给定元素 * * @param array 数组要检查的数组 * @param element 要查找的元素 * @param 通用标签 - * @return 如果集合为空(null或者空),返回{@code false},否则找到元素返回{@code true} + * @return 如果集合为空(null或者空),返回{@code false},否则找到元素返回{@code true} */ public static boolean contains(T[] array, final T element) { if (array == null) { @@ -212,11 +212,11 @@ public static boolean contains(T[] array, final T element) { } /** - * 判断指定集合是否包含指定值,如果集合为空(null或者空),返回{@code false},否则找到元素返回{@code true} + * 判断指定集合是否包含指定值,如果集合为空(null或者空),返回{@code false},否则找到元素返回{@code true} * * @param collection 集合 * @param value 需要查找的值 - * @return 如果集合为空(null或者空),返回{@code false},否则找到元素返回{@code true} + * @return 如果集合为空(null或者空),返回{@code false},否则找到元素返回{@code true} */ public static boolean contains(final Collection collection, Object value) { return isNotEmpty(collection) && collection.contains(value); @@ -261,7 +261,7 @@ public static boolean contains(Enumeration enumeration, Object element) { } /** - * 其中一个集合在另一个集合中是否至少包含一个元素,既是两个集合是否至少有一个共同的元素 + * 其中一个集合在另一个集合中是否至少包含一个元素,既是两个集合是否至少有一个共同的元素 * * @param coll1 集合1 * @param coll2 集合2 @@ -291,7 +291,7 @@ public static boolean containsAny(final Collection coll1, final Collection /** * 根据集合返回一个元素计数的 {@link Map} - * 所谓元素计数就是假如这个集合中某个元素出现了n次,那将这个元素做为key,n做为value + * 所谓元素计数就是假如这个集合中某个元素出现了n次,那将这个元素做为key,n做为value * 例如:[a,b,c,c,c] 得到: * a: 1 * b: 1 @@ -308,7 +308,7 @@ public static Map countMap(Iterable collection) { /** * 以 conjunction 为分隔符将集合转换为字符串 - * 如果集合元素为数组、{@link Iterable}或{@link Iterator},则递归组合其为字符串 + * 如果集合元素为数组、{@link Iterable}或{@link Iterator},则递归组合其为字符串 * * @param 集合元素类型 * @param iterable {@link Iterable} @@ -322,7 +322,7 @@ public static String join(Iterable iterable, CharSequence conjunction) { /** * 以 conjunction 为分隔符将集合转换为字符串 - * 如果集合元素为数组、{@link Iterable}或{@link Iterator},则递归组合其为字符串 + * 如果集合元素为数组、{@link Iterable}或{@link Iterator},则递归组合其为字符串 * * @param 集合元素类型 * @param iterator 集合 @@ -409,8 +409,8 @@ public static HashMap newHashMap() { * * @param Key类型 * @param Value类型 - * @param size 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75 - * @param isOrder Map的Key是否有序,有序返回 {@link LinkedHashMap},否则返回 {@link HashMap} + * @param size 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75 + * @param isOrder Map的Key是否有序,有序返回 {@link LinkedHashMap},否则返回 {@link HashMap} * @return HashMap对象 * @see MapUtils#newHashMap(int, boolean) * @since 3.0.4 @@ -424,7 +424,7 @@ public static HashMap newHashMap(int size, boolean isOrder) { * * @param Key类型 * @param Value类型 - * @param size 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75 + * @param size 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75 * @return HashMap对象 */ public static HashMap newHashMap(int size) { @@ -457,7 +457,7 @@ public static LinkedHashSet newLinkedHashSet(T... ts) { * 新建一个HashSet * * @param 集合元素类型 - * @param isSorted 是否有序,有序返回 {@link LinkedHashSet},否则返回 {@link HashSet} + * @param isSorted 是否有序,有序返回 {@link LinkedHashSet},否则返回 {@link HashSet} * @param ts 元素数组 * @return HashSet对象 */ @@ -488,8 +488,8 @@ public static HashSet newHashSet(Collection collection) { * 新建一个HashSet * * @param 集合元素类型 - * @param isSorted 是否有序,有序返回 {@link LinkedHashSet},否则返回{@link HashSet} - * @param collection 集合,用于初始化Set + * @param isSorted 是否有序,有序返回 {@link LinkedHashSet},否则返回{@link HashSet} + * @param collection 集合,用于初始化Set * @return HashSet对象 */ public static HashSet newHashSet(boolean isSorted, Collection collection) { @@ -500,7 +500,7 @@ public static HashSet newHashSet(boolean isSorted, Collection collecti * 新建一个HashSet * * @param 集合元素类型 - * @param isSorted 是否有序,有序返回 {@link LinkedHashSet},否则返回{@link HashSet} + * @param isSorted 是否有序,有序返回 {@link LinkedHashSet},否则返回{@link HashSet} * @param iter {@link Iterator} * @return HashSet对象 */ @@ -519,7 +519,7 @@ public static HashSet newHashSet(boolean isSorted, Iterator iter) { * 新建一个HashSet * * @param 集合元素类型 - * @param isSorted 是否有序,有序返回 {@link LinkedHashSet},否则返回{@link HashSet} + * @param isSorted 是否有序,有序返回 {@link LinkedHashSet},否则返回{@link HashSet} * @param enumration {@link Enumeration} * @return HashSet对象 */ @@ -727,7 +727,7 @@ public static CopyOnWriteArrayList newCopyOnWriteArrayList(Collection /** * 新建{@link BlockingQueue} - * 在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。 + * 在队列为空时,获取元素的线程会等待队列变为非空 当队列满时,存储元素的线程会等待队列可用 * * @param 对象 * @param capacity 容量 @@ -776,7 +776,7 @@ else if (collectionType.isAssignableFrom(ArrayList.class)) { list = new LinkedList<>(); } - // Others,直接实例化 + // Others,直接实例化 else { try { list = (Collection) ReflectUtils.newInstance(collectionType); @@ -825,7 +825,7 @@ public static ArrayList distinct(Collection collection) { * @param list 被截取的数组 * @param start 开始位置(包含) * @param end 结束位置(不包含) - * @return 截取后的数组,当开始位置超过最大时,返回空的List + * @return 截取后的数组, 当开始位置超过最大时, 返回空的List */ public static List sub(List list, int start, int end) { return sub(list, start, end, 1); @@ -839,7 +839,7 @@ public static List sub(List list, int start, int end) { * @param start 开始位置(包含) * @param end 结束位置(不包含) * @param step 步进 - * @return 截取后的数组,当开始位置超过最大时,返回空的List + * @return 截取后的数组, 当开始位置超过最大时, 返回空的List */ public static List sub(List list, int start, int end, int step) { if (list == null || list.isEmpty()) { @@ -886,7 +886,7 @@ public static List sub(List list, int start, int end, int step) { * @param collection 被截取的数组 * @param start 开始位置(包含) * @param end 结束位置(不包含) - * @return 截取后的数组,当开始位置超过最大时,返回null + * @return 截取后的数组, 当开始位置超过最大时, 返回null */ public static List sub(Collection collection, int start, int end) { return sub(collection, start, end, 1); @@ -900,7 +900,7 @@ public static List sub(Collection collection, int start, int end) { * @param start 开始位置(包含) * @param end 结束位置(不包含) * @param step 步进 - * @return 截取后的数组,当开始位置超过最大时,返回空集合 + * @return 截取后的数组, 当开始位置超过最大时, 返回空集合 */ public static List sub(Collection list, int start, int end, int step) { if (list == null || list.isEmpty()) { @@ -911,7 +911,7 @@ public static List sub(Collection list, int start, int end, int step) } /** - * 对集合按照指定长度分段,每一个段为单独的集合,返回这个集合的列表 + * 对集合按照指定长度分段,每一个段为单独的集合,返回这个集合的列表 * * @param 集合元素类型 * @param collection 集合 @@ -935,11 +935,11 @@ public static List> split(Collection collection, int size) { /** * 过滤 - * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: + * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: * *
-     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
-     * 2、修改元素对象,返回集合中为修改后的对象
+     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
+     * 2、修改元素对象,返回集合中为修改后的对象
      * 
* * @param 集合元素类型 @@ -952,7 +952,7 @@ public static Collection filter(Collection collection, Editor edito try { collection2.clear(); } catch (UnsupportedOperationException e) { - // 克隆后的对象不支持清空,说明为不可变集合对象,使用默认的ArrayList保存结果 + // 克隆后的对象不支持清空,说明为不可变集合对象,使用默认的ArrayList保存结果 collection2 = new ArrayList<>(); } @@ -968,11 +968,11 @@ public static Collection filter(Collection collection, Editor edito /** * 过滤 - * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: + * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: * *
-     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
-     * 2、修改元素对象,返回集合中为修改后的对象
+     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
+     * 2、修改元素对象,返回集合中为修改后的对象
      * 
* * @param 集合元素类型 @@ -994,10 +994,10 @@ public static List filter(List list, Editor editor) { /** * 过滤 - * 过滤过程通过传入的Filter实现来过滤返回需要的元素内容,这个Filter实现可以实现以下功能: + * 过滤过程通过传入的Filter实现来过滤返回需要的元素内容,这个Filter实现可以实现以下功能: * *
-     * 1、过滤出需要的对象,{@link Filter#accept(Object)}方法返回true的对象将被加入结果集合中
+     * 1、过滤出需要的对象,{@link Filter#accept(Object)}方法返回true的对象将被加入结果集合中
      * 
* * @param 集合元素类型 @@ -1011,7 +1011,7 @@ public static Collection filter(Collection collection, Filter filte try { collection2.clear(); } catch (UnsupportedOperationException e) { - // 克隆后的对象不支持清空,说明为不可变集合对象,使用默认的ArrayList保存结果 + // 克隆后的对象不支持清空,说明为不可变集合对象,使用默认的ArrayList保存结果 collection2 = new ArrayList<>(); } @@ -1025,10 +1025,10 @@ public static Collection filter(Collection collection, Filter filte /** * 过滤 - * 过滤过程通过传入的Filter实现来过滤返回需要的元素内容,这个Filter实现可以实现以下功能: + * 过滤过程通过传入的Filter实现来过滤返回需要的元素内容,这个Filter实现可以实现以下功能: * *
-     * 1、过滤出需要的对象,{@link Filter#accept(Object)}方法返回true的对象将被加入结果集合中
+     * 1、过滤出需要的对象,{@link Filter#accept(Object)}方法返回true的对象将被加入结果集合中
      * 
* * @param 集合元素类型 @@ -1113,7 +1113,7 @@ public boolean accept(T t) { /** * 通过Editor抽取集合元素中的某些值返回为新列表 - * 例如提供的是一个Bean列表,通过Editor接口实现获取某个字段值,返回这个字段值组成的新列表 + * 例如提供的是一个Bean列表,通过Editor接口实现获取某个字段值,返回这个字段值组成的新列表 * * @param collection 原集合 * @param editor 编辑器 @@ -1154,7 +1154,7 @@ public Object edit(Object bean) { * * @param 集合元素类型 * @param collection 集合 - * @param filter 过滤器,满足过滤条件的第一个元素将被返回 + * @param filter 过滤器,满足过滤条件的第一个元素将被返回 * @return 满足过滤条件的第一个元素 * @since 3.1.9 */ @@ -1171,12 +1171,12 @@ public static T findOne(Iterable collection, Filter filter) { /** * 查找第一个匹配元素对象 - * 如果集合元素是Map,则比对键和值是否相同,相同则返回 - * 如果为普通Bean,则通过反射比对元素字段名对应的字段值是否相同,相同则返回 + * 如果集合元素是Map,则比对键和值是否相同,相同则返回 + * 如果为普通Bean,则通过反射比对元素字段名对应的字段值是否相同,相同则返回 * 如果给定字段值参数是{@code null} 且元素对象中的字段值也为{@code null}则认为相同 * * @param 集合元素类型 - * @param collection 集合,集合元素可以是Bean或者Map + * @param collection 集合,集合元素可以是Bean或者Map * @param fieldName 集合元素对象的字段名或map的键 * @param fieldValue 集合元素对象的字段值或map的值 * @return 满足条件的第一个元素 @@ -1201,11 +1201,11 @@ public boolean accept(T t) { /** * 过滤 - * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: + * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: * *
-     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
-     * 2、修改元素对象,返回集合中为修改后的对象
+     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
+     * 2、修改元素对象,返回集合中为修改后的对象
      * 
* * @param Key类型 @@ -1221,11 +1221,11 @@ public static Map filter(Map map, Editor> editor) /** * 过滤 - * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: + * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: * *
-     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
-     * 2、修改元素对象,返回集合中为修改后的对象
+     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
+     * 2、修改元素对象,返回集合中为修改后的对象
      * 
* * @param Key类型 @@ -1245,7 +1245,7 @@ public static Map filter(Map map, Filter> filter) * * @param 集合元素类型 * @param iterable {@link Iterable} - * @param matcher 匹配器,为空则全部匹配 + * @param matcher 匹配器,为空则全部匹配 * @return 匹配数量 */ public static int count(Iterable iterable, Matcher matcher) { @@ -1369,7 +1369,7 @@ public static boolean isNotEmpty(Enumeration enumeration) { /** * 是否包含{@code null}元素 * - * @param iterable 被检查的Iterable对象,如果为{@code null} 返回false + * @param iterable 被检查的Iterable对象,如果为{@code null} 返回false * @return 是否包含{@code null}元素 * @see IterUtils#hasNull(Iterable) * @since 3.0.7 @@ -1384,7 +1384,7 @@ public static boolean hasNull(Iterable iterable) { * keys = a,b,c,d * values = 1,2,3,4 * delimiter = , 则得到的Map是 {a=1, b=2, c=3, d=4} - * 如果两个数组长度不同,则只对应最短部分 + * 如果两个数组长度不同,则只对应最短部分 * * @param keys 键列表 * @param values 值列表 @@ -1398,12 +1398,12 @@ public static Map zip(String keys, String values, String delimit } /** - * 映射键值(参考Python的zip()函数),返回Map无序 + * 映射键值(参考Python的zip()函数),返回Map无序 * 例如: * keys = a,b,c,d * values = 1,2,3,4 * delimiter = , 则得到的Map是 {a=1, b=2, c=3, d=4} - * 如果两个数组长度不同,则只对应最短部分 + * 如果两个数组长度不同,则只对应最短部分 * * @param keys 键列表 * @param values 值列表 @@ -1420,7 +1420,7 @@ public static Map zip(String keys, String values, String delimit * keys = [a,b,c,d] * values = [1,2,3,4] * 则得到的Map是 {a=1, b=2, c=3, d=4} - * 如果两个数组长度不同,则只对应最短部分 + * 如果两个数组长度不同,则只对应最短部分 * * @param 键类型 * @param 值类型 @@ -1459,13 +1459,13 @@ public static HashMap toMap(Iterable> entryIter) { } /** - * 将数组转换为Map(HashMap),支持数组元素类型为: + * 将数组转换为Map(HashMap),支持数组元素类型为: * *
      * Map.Entry
-     * 长度大于1的数组(取前两个值),如果不满足跳过此元素
-     * Iterable 长度也必须大于1(取前两个值),如果不满足跳过此元素
-     * Iterator 长度也必须大于1(取前两个值),如果不满足跳过此元素
+     * 长度大于1的数组(取前两个值),如果不满足跳过此元素
+     * Iterable 长度也必须大于1(取前两个值),如果不满足跳过此元素
+     * Iterator 长度也必须大于1(取前两个值),如果不满足跳过此元素
      * 
* *
@@ -1477,7 +1477,7 @@ public static  HashMap toMap(Iterable> entryIter) {
      * 

* 参考:commons-lang * - * @param array 数组。元素类型为Map.Entry、数组、Iterable、Iterator + * @param array 数组 元素类型为Map.Entry、数组、Iterable、Iterator * @return {@link HashMap} * @see MapUtils#of(Object[]) */ @@ -1542,7 +1542,7 @@ public static Iterable asIterable(final Iterator iter) { /** * {@link Iterable}转为{@link Collection} - * 首先尝试强转,强转失败则构建一个新的{@link ArrayList} + * 首先尝试强转,强转失败则构建一个新的{@link ArrayList} * * @param 集合元素类型 * @param iterable {@link Iterable} @@ -1554,7 +1554,7 @@ public static Collection toCollection(Iterable iterable) { } /** - * 行转列,合并相同的键,值合并为列表 + * 行转列,合并相同的键,值合并为列表 * 将Map列表中相同key的值组成列表做为Map的value * 是{@link #toMapList(Map)}的逆方法 * 比如传入数据: @@ -1589,7 +1589,7 @@ public static Map> toListMap(Iterable> map } /** - * 列转行。将Map中值列表分别按照其位置与key组成新的map。 + * 列转行 将Map中值列表分别按照其位置与key组成新的map * 是{@link #toListMap(Iterable)}的逆方法 * 比如传入数据: * @@ -1624,11 +1624,11 @@ public static List> toMapList(Map> lis /** * 将指定对象全部加入到集合中 - * 提供的对象如果为集合类型,会自动转换为目标元素类型 + * 提供的对象如果为集合类型,会自动转换为目标元素类型 * * @param 元素类型 * @param collection 被加入的集合 - * @param value 对象,可能为Iterator、Iterable、Enumeration、Array + * @param value 对象,可能为Iterator、Iterable、Enumeration、Array * @return 被加入集合 */ public static Collection addAll(Collection collection, Object value) { @@ -1637,12 +1637,12 @@ public static Collection addAll(Collection collection, Object value) { /** * 将指定对象全部加入到集合中 - * 提供的对象如果为集合类型,会自动转换为目标元素类型 + * 提供的对象如果为集合类型,会自动转换为目标元素类型 * * @param 元素类型 * @param collection 被加入的集合 - * @param value 对象,可能为Iterator、Iterable、Enumeration、Array,或者与集合元素类型一致 - * @param elementType 元素类型,为空时,使用Object类型来接纳所有类型 + * @param value 对象,可能为Iterator、Iterable、Enumeration、Array,或者与集合元素类型一致 + * @param elementType 元素类型,为空时,使用Object类型来接纳所有类型 * @return 被加入集合 */ public static Collection addAll(Collection collection, Object value, Type elementType) { @@ -1650,7 +1650,7 @@ public static Collection addAll(Collection collection, Object value, T return collection; } if (null == elementType) { - // 元素类型为空时,使用Object类型来接纳所有类型 + // 元素类型为空时,使用Object类型来接纳所有类型 elementType = Object.class; } else { final Class elementRowType = TypeUtils.getClass(elementType); @@ -1750,7 +1750,7 @@ public static Collection addAll(Collection collection, T[] values) { } /** - * 将另一个列表中的元素加入到列表中,如果列表中已经存在此元素则忽略之 + * 将另一个列表中的元素加入到列表中,如果列表中已经存在此元素则忽略之 * * @param 集合元素类型 * @param list 列表 @@ -1767,12 +1767,12 @@ public static List addAllIfNotContains(List list, List otherList) { } /** - * 获取集合中指定下标的元素值,下标可以为负数,例如-1表示最后一个元素 - * 如果元素越界,返回null + * 获取集合中指定下标的元素值,下标可以为负数,例如-1表示最后一个元素 + * 如果元素越界,返回null * * @param 元素类型 * @param collection 集合 - * @param index 下标,支持负数 + * @param index 下标,支持负数 * @return 元素值 */ public static T get(Collection collection, int index) { @@ -1804,11 +1804,11 @@ public static T get(Collection collection, int index) { } /** - * 获取集合中指定多个下标的元素值,下标可以为负数,例如-1表示最后一个元素 + * 获取集合中指定多个下标的元素值,下标可以为负数,例如-1表示最后一个元素 * * @param 元素类型 * @param collection 集合 - * @param indexes 下标,支持负数 + * @param indexes 下标,支持负数 * @return 元素值列表 */ public static List getAny(Collection collection, int... indexes) { @@ -1875,7 +1875,7 @@ public static T getLast(Collection collection) { * 获得{@link Iterable}对象的元素类型(通过第一个非空元素判断) * * @param iterable {@link Iterable} - * @return 元素类型,当列表为空或元素全部为null时,返回null + * @return 元素类型, 当列表为空或元素全部为null时, 返回null * @see IterUtils#getElementType(Iterable) */ public static Class getElementType(Iterable iterable) { @@ -1886,7 +1886,7 @@ public static Class getElementType(Iterable iterable) { * 获得{@link Iterator}对象的元素类型(通过第一个非空元素判断) * * @param iterator {@link Iterator} - * @return 元素类型,当列表为空或元素全部为null时,返回null + * @return 元素类型, 当列表为空或元素全部为null时, 返回null * @see IterUtils#getElementType(Iterator) */ public static Class getElementType(Iterator iterator) { @@ -1895,7 +1895,7 @@ public static Class getElementType(Iterator iterator) { /** * 从Map中获取指定键列表对应的值列表 - * 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为null + * 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为null * * @param 键类型 * @param 值类型 @@ -1913,7 +1913,7 @@ public static ArrayList valuesOfKeys(Map map, K... keys) { /** * 从Map中获取指定键列表对应的值列表 - * 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为null + * 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为null * * @param 键类型 * @param 值类型 @@ -1928,7 +1928,7 @@ public static ArrayList valuesOfKeys(Map map, Iterable keys) /** * 从Map中获取指定键列表对应的值列表 - * 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为null + * 如果key在map中不存在或key对应值为null,则返回值列表对应位置的值也为null * * @param 键类型 * @param 值类型 @@ -1950,7 +1950,7 @@ public static ArrayList valuesOfKeys(Map map, Iterator keys) * 实现分页取局部 * * @param 集合元素类型 - * @param pageNo 页码,从1开始计数,0和1效果相同 + * @param pageNo 页码,从1开始计数,0和1效果相同 * @param pageSize 每页的条目数 * @param comparator 比较器 * @param colls 集合数组 @@ -1972,7 +1972,7 @@ public static List sortPageAll(int pageNo, int pageSize, Comparator co * 对指定List分页取值 * * @param 集合元素类型 - * @param pageNo 页码,从1开始计数,0和1效果相同 + * @param pageNo 页码,从1开始计数,0和1效果相同 * @param pageSize 每页的条目数 * @param list 列表 * @return 分页后的段落内容 @@ -2000,7 +2000,7 @@ public static List page(int pageNo, int pageSize, List list) { } /** - * 排序集合,排序不会修改原集合 + * 排序集合,排序不会修改原集合 * * @param 集合元素类型 * @param collection 集合 @@ -2014,7 +2014,7 @@ public static List sort(Collection collection, Comparator c } /** - * 针对List排序,排序会修改原List + * 针对List排序,排序会修改原List * * @param 元素类型 * @param list 被排序的List @@ -2044,7 +2044,7 @@ public static TreeMap sort(Map map, Comparator com } /** - * 通过Entry排序,可以按照键排序,也可以按照值排序,亦或者两者综合排序 + * 通过Entry排序,可以按照键排序,也可以按照值排序,亦或者两者综合排序 * * @param 键类型 * @param 值类型 @@ -2065,7 +2065,7 @@ public static LinkedHashMap sortToMap(Collection> entry } /** - * 通过Entry排序,可以按照键排序,也可以按照值排序,亦或者两者综合排序 + * 通过Entry排序,可以按照键排序,也可以按照值排序,亦或者两者综合排序 * * @param 键类型 * @param 值类型 @@ -2105,7 +2105,7 @@ public int compare(Entry o1, Entry o2) { } /** - * 循环遍历 {@link Iterator},使用{@link Consumer} 接受遍历的每条数据,并针对每条数据做处理 + * 循环遍历 {@link Iterator},使用{@link Consumer} 接受遍历的每条数据,并针对每条数据做处理 * * @param 集合元素类型 * @param iterator {@link Iterator} @@ -2120,7 +2120,7 @@ public static void forEach(Iterator iterator, Consumer consumer) { } /** - * 循环遍历 {@link Enumeration},使用{@link Consumer} 接受遍历的每条数据,并针对每条数据做处理 + * 循环遍历 {@link Enumeration},使用{@link Consumer} 接受遍历的每条数据,并针对每条数据做处理 * * @param 集合元素类型 * @param enumeration {@link Enumeration} @@ -2135,7 +2135,7 @@ public static void forEach(Enumeration enumeration, Consumer consumer) } /** - * 循环遍历Map,使用{@link KVConsumer} 接受遍历的每条数据,并针对每条数据做处理 + * 循环遍历Map,使用{@link KVConsumer} 接受遍历的每条数据,并针对每条数据做处理 * * @param Key类型 * @param Value类型 @@ -2151,11 +2151,11 @@ public static void forEach(Map map, KVConsumer kvConsumer) { } /** - * 分组,按照{@link Hash}接口定义的hash算法,集合中的元素放入hash值对应的子列表中 + * 分组,按照{@link Hash}接口定义的hash算法,集合中的元素放入hash值对应的子列表中 * * @param 元素类型 * @param collection 被分组的集合 - * @param hash Hash值算法,决定元素放在第几个分组的规则 + * @param hash Hash值算法,决定元素放在第几个分组的规则 * @return 分组后的集合 */ public static List> group(Collection collection, Hash hash) { @@ -2164,7 +2164,7 @@ public static List> group(Collection collection, Hash hash) { return result; } if (null == hash) { - // 默认hash算法,按照元素的hashCode分组 + // 默认hash算法,按照元素的hashCode分组 hash = new Hash() { @Override public int hash(T t) { @@ -2198,7 +2198,7 @@ public int hash(T t) { * Map的键和值互换 * * @param 对象 - * @param map Map对象,键值类型必须一致 + * @param map Map对象,键值类型必须一致 * @return 互换后的Map */ public static Map reverse(Map map) { @@ -2227,7 +2227,7 @@ public T setValue(T value) { } /** - * 反序给定List,会在原List基础上直接修改 + * 反序给定List,会在原List基础上直接修改 * * @param 元素类型 * @param list 被反转的List @@ -2239,7 +2239,7 @@ public static List reverse(List list) { } /** - * 反序给定List,会创建一个新的List,原List数据不变 + * 反序给定List,会创建一个新的List,原List数据不变 * * @param 元素类型 * @param list 被反转的List @@ -2252,12 +2252,12 @@ public static List reverseNew(List list) { /** * 对list的元素按照多个属性名称排序, - * list元素的属性可以是数字(byte、short、int、long、float、double等,支持正数、负数、0)、char、String、java.util.Date + * list元素的属性可以是数字(byte、short、int、long、float、double等,支持正数、负数、0)、char、String、java.util.Date * * @param 对象 * @param list 集合 * @param name list元素的属性名称 - * @param asc true升序,false降序 + * @param asc true升序,false降序 */ public static void sort(List list, final boolean asc, final String... name) { Collections.sort(list, new Comparator() { @@ -2285,7 +2285,7 @@ public int compare(E a, E b) { * @param 对象 * @param list 集合 * @param name 参数数组 - * @param type 每个属性对应的升降序数组, true升序,false降序 + * @param type 每个属性对应的升降序数组, true升序,false降序 */ public static void sort(List list, final String[] name, final boolean[] type) { @@ -2314,7 +2314,7 @@ public int compare(E a, E b) { * 对2个对象按照指定属性名称进行排序 * * @param name 属性名称 - * @param asc true升序,false降序 + * @param asc true升序,false降序 * @param a 对象 * @param b 对象 * @return @@ -2356,7 +2356,7 @@ public static Object forceGetFieldValue(Object obj, String fieldName) throws Exc Field field = FieldUtils.getField(obj.getClass(), fieldName); boolean accessible = field.isAccessible(); if (!accessible) { - // 如果是private,protected修饰的属性,需要修改为可以访问的 + // 如果是private,protected修饰的属性,需要修改为可以访问的 field.setAccessible(true); obj = field.get(obj); // 还原private,protected属性的访问性质 @@ -2367,7 +2367,7 @@ public static Object forceGetFieldValue(Object obj, String fieldName) throws Exc } /** - * 设置或增加元素。当index小于List的长度时,替换指定位置的值,否则在尾部追加 + * 设置或增加元素 当index小于List的长度时,替换指定位置的值,否则在尾部追加 * * @param 对象 * @param list List列表 @@ -2388,13 +2388,12 @@ public static List setOrAppend(List list, int index, T element) { * 将页数和每页条目数转换为开始位置和结束位置 * 此方法用于不包括结束位置的分页方法 * 例如: - * 页码:1,每页10 =》 [0, 10] - * 页码:2,每页10 =》 [10, 20] - * 。。。 + * 页码:1,每页10 =》 [0, 10] + * 页码:2,每页10 =》 [10, 20] * * @param pageNo 页码(从1计数) * @param pageSize 每页条目数 - * @return 第一个数为开始位置,第二个数为结束位置 + * @return 第一个数为开始位置, 第二个数为结束位置 */ public static int[] transToStartEnd(int pageNo, int pageSize) { if (pageNo < 1) { @@ -2427,7 +2426,7 @@ public static int totalPage(int totalCount, int pageSize) { /** * 分页彩虹算法 - * 通过传入的信息,生成一个分页列表显示 + * 通过传入的信息,生成一个分页列表显示 * * @param currentPage 当前页 * @param pageCount 总页数 @@ -2559,7 +2558,7 @@ public interface Consumer { } /** - * 针对两个参数做相应的操作,例如Map中的KEY和VALUE + * 针对两个参数做相应的操作,例如Map中的KEY和VALUE * * @param KEY类型 * @param VALUE类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/CompareUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/CompareUtils.java index 32d314cbf8..732cd1a895 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/CompareUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/CompareUtils.java @@ -14,12 +14,12 @@ public class CompareUtils { /** - * {@code null}安全的对象比较,{@code null}对象小于任何对象 + * {@code null}安全的对象比较,{@code null}对象小于任何对象 * * @param 被比较对象类型 - * @param c1 对象1,可以为{@code null} - * @param c2 对象2,可以为{@code null} - * @return 比较结果,如果c1 < c2,返回数小于0,c1==c2返回0,c1 > c2 大于0 + * @param c1 对象1,可以为{@code null} + * @param c2 对象2,可以为{@code null} + * @return 比较结果, 如果c1 < c2,返回数小于0,c1==c2返回0,c1 > c2 大于0 * @see java.util.Comparator#compare(Object, Object) */ public static > int compare(T c1, T c2) { @@ -30,10 +30,10 @@ public static > int compare(T c1, T c2) { * {@code null}安全的对象比较 * * @param 被比较对象类型(必须实现Comparable接口) - * @param c1 对象1,可以为{@code null} - * @param c2 对象2,可以为{@code null} - * @param isNullGreater 当被比较对象为null时是否排在前面,true表示null大于任何对象,false反之 - * @return 比较结果,如果c1 < c2,返回数小于0,c1==c2返回0,c1 > c2 大于0 + * @param c1 对象1,可以为{@code null} + * @param c2 对象2,可以为{@code null} + * @param isNullGreater 当被比较对象为null时是否排在前面,true表示null大于任何对象,false反之 + * @return 比较结果, 如果c1 < c2,返回数小于0,c1==c2返回0,c1 > c2 大于0 * @see java.util.Comparator#compare(Object, Object) */ public static > int compare(T c1, T c2, boolean isNullGreater) { @@ -56,7 +56,7 @@ public static > int compare(T c1, T c2, boolean * @return (v1 小于 v2) ? -1 : ((v1 等于 v2) ? 0 : 1) */ public static int compare(String v1, String v2, boolean complete) { - // v1 null视为最小版本,排在前 + // v1 null视为最小版本,排在前 if (v1 == v2) { return 0; } else if (v1 == null) { @@ -91,7 +91,7 @@ public static int compare(String v1, String v2, boolean complete) { } /** - * 自然比较两个对象的大小,比较规则如下: + * 自然比较两个对象的大小,比较规则如下: * *

      * 1、如果实现Comparable调用compareTo比较
@@ -104,7 +104,7 @@ public static int compare(String v1, String v2, boolean complete) {
      * @param o1            对象1
      * @param o2            对象2
      * @param isNullGreater null值是否做为最大值
-     * @return 比较结果,如果o1 < o2,返回数小于0,o1==o2返回0,o1 > o2 大于0
+     * @return 比较结果, 如果o1 < o2,返回数小于0,o1==o2返回0,o1 > o2 大于0
      */
     public static  int compare(T o1, T o2, boolean isNullGreater) {
         if (o1 == o2) {
@@ -116,7 +116,7 @@ public static  int compare(T o1, T o2, boolean isNullGreater) {
         }
 
         if (o1 instanceof Comparable && o2 instanceof Comparable) {
-            //如果bean可比较,直接比较bean
+            //如果bean可比较,直接比较bean
             return ((Comparable) o1).compareTo(o2);
         }
 
diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/CsvUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/CsvUtils.java
index aba14c1e3c..ae2bb18449 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/utils/CsvUtils.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/utils/CsvUtils.java
@@ -61,7 +61,7 @@ public static CsvReader getReader() {
     }
 
     /**
-     * 获取CSV生成器(写出器),使用默认配置,覆盖已有文件(如果存在)
+     * 获取CSV生成器(写出器),使用默认配置,覆盖已有文件(如果存在)
      *
      * @param filePath File CSV文件路径
      * @param charset  编码
@@ -72,7 +72,7 @@ public static CsvWriter getWriter(String filePath, Charset charset) {
     }
 
     /**
-     * 获取CSV生成器(写出器),使用默认配置,覆盖已有文件(如果存在)
+     * 获取CSV生成器(写出器),使用默认配置,覆盖已有文件(如果存在)
      *
      * @param file    File CSV文件
      * @param charset 编码
@@ -83,7 +83,7 @@ public static CsvWriter getWriter(File file, Charset charset) {
     }
 
     /**
-     * 获取CSV生成器(写出器),使用默认配置
+     * 获取CSV生成器(写出器),使用默认配置
      *
      * @param filePath File CSV文件路径
      * @param charset  编码
@@ -95,7 +95,7 @@ public static CsvWriter getWriter(String filePath, Charset charset, boolean isAp
     }
 
     /**
-     * 获取CSV生成器(写出器),使用默认配置
+     * 获取CSV生成器(写出器),使用默认配置
      *
      * @param file     File CSV文件
      * @param charset  编码
@@ -112,7 +112,7 @@ public static CsvWriter getWriter(File file, Charset charset, boolean isAppend)
      * @param file     File CSV文件
      * @param charset  编码
      * @param isAppend 是否追加
-     * @param config   写出配置,null则使用默认配置
+     * @param config   写出配置,null则使用默认配置
      * @return {@link CsvWriter}
      */
     public static CsvWriter getWriter(File file, Charset charset, boolean isAppend, CsvWriteConfig config) {
@@ -133,7 +133,7 @@ public static CsvWriter getWriter(Writer writer) {
      * 获取CSV生成器(写出器)
      *
      * @param writer Writer
-     * @param config 写出配置,null则使用默认配置
+     * @param config 写出配置,null则使用默认配置
      * @return {@link CsvWriter}
      */
     public static CsvWriter getWriter(Writer writer, CsvWriteConfig config) {
diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/DateUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/DateUtils.java
index b6cd02cae9..6655153ea6 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/utils/DateUtils.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/utils/DateUtils.java
@@ -168,7 +168,7 @@ public static Calendar calendar(long millis) {
     }
 
     /**
-     * 当前时间,格式 yyyy-MM-dd HH:mm:ss
+     * 当前时间,格式 yyyy-MM-dd HH:mm:ss
      *
      * @return 当前时间的标准形式字符串
      */
@@ -206,7 +206,7 @@ public static int year(Date date) {
     }
 
     /**
-     * 获得指定日期所属季度,从1开始计数
+     * 获得指定日期所属季度,从1开始计数
      *
      * @param date 日期
      * @return 第几个季度
@@ -226,10 +226,10 @@ public static Fields.Quarter quarters(Date date) {
     }
 
     /**
-     * 获得月份,从0开始计数
+     * 获得月份,从0开始计数
      *
      * @param date 日期
-     * @return 月份,从0开始计数
+     * @return 月份, 从0开始计数
      */
     public static int month(Date date) {
         return DateTime.of(date).month();
@@ -276,7 +276,7 @@ public static int dayOfMonth(Date date) {
     }
 
     /**
-     * 获得指定日期是星期几,1表示周日,2表示周一
+     * 获得指定日期是星期几,1表示周日,2表示周一
      *
      * @param date 日期
      * @return 天
@@ -447,7 +447,7 @@ public static int thisMillsecond() {
      * 格式:[20131]表示2013年第一季度
      *
      * @param date 日期
-     * @return Quarter ,类似于 20132
+     * @return Quarter ,类似于 20132
      */
     public static String yearAndQuarter(Date date) {
         return yearAndQuarter(calendar(date));
@@ -455,10 +455,10 @@ public static String yearAndQuarter(Date date) {
 
 
     /**
-     * 按照给定的通配模式 YYYY-MM-DD HH:MM:SS ,将时间格式化成相应的字符串
+     * 按照给定的通配模式 YYYY-MM-DD HH:MM:SS ,将时间格式化成相应的字符串
      *
      * @param date 待格式化的时间
-     * @return 格式化成功返回成功后的字符串,失败返回null
+     * @return 格式化成功返回成功后的字符串, 失败返回null
      */
     public static String format(Date date) {
         if (date != null) {
@@ -472,14 +472,22 @@ public static String format(Date date) {
      * 根据特定格式格式化日期
      *
      * @param date   被格式化的日期
-     * @param format 日期格式,常用格式见: {@link Fields}
+     * @param format 日期格式,常用格式见: {@link Fields}
      * @return 格式化后的字符串
      */
     public static String format(Date date, String format) {
         if (null == date || StringUtils.isBlank(format)) {
             return null;
         }
-        return format(date, FastDateFormat.getInstance(format));
+
+        final SimpleDateFormat sdf = new SimpleDateFormat(format);
+        if (date instanceof DateTime) {
+            final TimeZone timeZone = ((DateTime) date).getTimeZone();
+            if (null != timeZone) {
+                sdf.setTimeZone(timeZone);
+            }
+        }
+        return format(date, sdf);
     }
 
     /**
@@ -511,12 +519,12 @@ public static String format(Date date, DateFormat format) {
     }
 
     /**
-     * 按照给定的通配模式,格式化成相应的时间字符串
+     * 按照给定的通配模式,格式化成相应的时间字符串
      *
      * @param srcDate     原始时间字符串
      * @param srcPattern  原始时间通配符
      * @param destPattern 格式化成的时间通配符
-     * @return 格式化成功返回成功后的字符串,失败返回""
+     * @return 格式化成功返回成功后的字符串, 失败返回""
      */
     public static String format(String srcDate, String srcPattern, String destPattern) {
         try {
@@ -638,7 +646,7 @@ public static String formatDateTime(Date date) {
     }
 
     /**
-     * 将日期字符串转换为{@link DateTime}对象,格式:
+     * 将日期字符串转换为{@link DateTime}对象,格式:
      * 
    *
  1. yyyy-MM-dd HH:mm:ss
  2. *
  3. yyyy/MM/dd HH:mm:ss
  4. @@ -723,7 +731,7 @@ public static DateTime parse(String dateStr, DateParser parser) { * 将特定格式的日期转换为Date对象 * * @param dateStr 特定格式的日期 - * @param format 格式,例如yyyy-MM-dd + * @param format 格式,例如yyyy-MM-dd * @return 日期对象 */ public static DateTime parse(String dateStr, String format) { @@ -742,7 +750,7 @@ public static DateTime parseDate(String dateString) { } /** - * 解析时间,格式HH:mm:ss,默认为1970-01-01 + * 解析时间,格式HH:mm:ss,默认为1970-01-01 * * @param timeString 标准形式的日期字符串 * @return 日期对象 @@ -764,7 +772,7 @@ public static DateTime parseDateTime(String dateString) { } /** - * 解析时间,格式HH:mm:ss,日期默认为今天 + * 解析时间,格式HH:mm:ss,日期默认为今天 * * @param timeString 标准形式的日期字符串 * @return 日期对象 @@ -776,7 +784,7 @@ public static DateTime parseTimeToday(String timeString) { } /** - * 解析UTC时间,格式为:yyyy-MM-dd'T'HH:mm:ss'Z + * 解析UTC时间,格式为:yyyy-MM-dd'T'HH:mm:ss'Z * * @param utcString UTC时间 * @return 日期对象 @@ -864,7 +872,7 @@ public static Calendar beginOfWeek(Calendar calendar) { } /** - * 获取某周的开始时间,周一定为一周的开始时间 + * 获取某周的开始时间,周一定为一周的开始时间 * * @param calendar 日期 {@link Calendar} * @param isMondayAsFirstDay 是否周一做为一周的第一天(false表示周日做为第一天) @@ -882,7 +890,7 @@ public static Calendar beginOfWeek(Calendar calendar, boolean isMondayAsFirstDay } /** - * 获取某周的结束时间,周日定为一周的结束 + * 获取某周的结束时间,周日定为一周的结束 * * @param calendar 日期 {@link Calendar} * @return {@link Calendar} @@ -1098,7 +1106,7 @@ public static DateTime nextMonth() { * 偏移毫秒数 * * @param date 日期 - * @param offset 偏移毫秒数,正数向未来偏移,负数向历史偏移 + * @param offset 偏移毫秒数,正数向未来偏移,负数向历史偏移 * @return 偏移后的日期 */ public static DateTime offsetMillisecond(Date date, int offset) { @@ -1109,7 +1117,7 @@ public static DateTime offsetMillisecond(Date date, int offset) { * 偏移秒数 * * @param date 日期 - * @param offset 偏移秒数,正数向未来偏移,负数向历史偏移 + * @param offset 偏移秒数,正数向未来偏移,负数向历史偏移 * @return 偏移后的日期 */ public static DateTime offsetSecond(Date date, int offset) { @@ -1120,7 +1128,7 @@ public static DateTime offsetSecond(Date date, int offset) { * 偏移分钟 * * @param date 日期 - * @param offset 偏移分钟数,正数向未来偏移,负数向历史偏移 + * @param offset 偏移分钟数,正数向未来偏移,负数向历史偏移 * @return 偏移后的日期 */ public static DateTime offsetMinute(Date date, int offset) { @@ -1131,7 +1139,7 @@ public static DateTime offsetMinute(Date date, int offset) { * 偏移小时 * * @param date 日期 - * @param offset 偏移小时数,正数向未来偏移,负数向历史偏移 + * @param offset 偏移小时数,正数向未来偏移,负数向历史偏移 * @return 偏移后的日期 */ public static DateTime offsetHour(Date date, int offset) { @@ -1142,7 +1150,7 @@ public static DateTime offsetHour(Date date, int offset) { * 偏移天 * * @param date 日期 - * @param offset 偏移天数,正数向未来偏移,负数向历史偏移 + * @param offset 偏移天数,正数向未来偏移,负数向历史偏移 * @return 偏移后的日期 */ public static DateTime offsetDay(Date date, int offset) { @@ -1153,7 +1161,7 @@ public static DateTime offsetDay(Date date, int offset) { * 偏移周 * * @param date 日期 - * @param offset 偏移周数,正数向未来偏移,负数向历史偏移 + * @param offset 偏移周数,正数向未来偏移,负数向历史偏移 * @return 偏移后的日期 */ public static DateTime offsetWeek(Date date, int offset) { @@ -1164,7 +1172,7 @@ public static DateTime offsetWeek(Date date, int offset) { * 偏移月 * * @param date 日期 - * @param offset 偏移月数,正数向未来偏移,负数向历史偏移 + * @param offset 偏移月数,正数向未来偏移,负数向历史偏移 * @return 偏移后的日期 */ public static DateTime offsetMonth(Date date, int offset) { @@ -1176,7 +1184,7 @@ public static DateTime offsetMonth(Date date, int offset) { * * @param date 基准日期 * @param dateField 偏移的粒度大小(小时、天、月等) - * @param offset 偏移量,正数为向后偏移,负数为向前偏移 + * @param offset 偏移量,正数为向后偏移,负数为向前偏移 * @return 偏移后的日期 */ public static DateTime offset(Date date, Fields.DateField dateField, int offset) { @@ -1187,7 +1195,7 @@ public static DateTime offset(Date date, Fields.DateField dateField, int offset) } /** - * 判断两个日期相差的时长,只保留绝对值 + * 判断两个日期相差的时长,只保留绝对值 * * @param beginDate 起始日期 * @param endDate 结束日期 @@ -1228,9 +1236,9 @@ public static long betweenMs(Date beginDate, Date endDate) { * 判断两个日期相差的天数 * *
    -     * 有时候我们计算相差天数的时候需要忽略时分秒。
    +     * 有时候我们计算相差天数的时候需要忽略时分秒
          * 比如:2016-02-01 23:59:59和2016-02-02 00:00:00相差一秒
    -     * 如果isReset为false相差天数为0。
    +     * 如果isReset为false相差天数为0
          * 如果isReset为true相差天数将被计算为1
          * 
    * @@ -1250,7 +1258,7 @@ public static long betweenDay(Date beginDate, Date endDate, boolean isReset) { /** * 计算两个日期相差月数 - * 在非重置情况下,如果起始日期的天小于结束日期的天,月数要少算1(不足1个月) + * 在非重置情况下,如果起始日期的天小于结束日期的天,月数要少算1(不足1个月) * * @param beginDate 起始日期 * @param endDate 结束日期 @@ -1263,7 +1271,7 @@ public static long betweenMonth(Date beginDate, Date endDate, boolean isReset) { /** * 计算两个日期相差年数 - * 在非重置情况下,如果起始日期的月小于结束日期的月,年数要少算1(不足1年) + * 在非重置情况下,如果起始日期的月小于结束日期的月,年数要少算1(不足1年) * * @param beginDate 起始日期 * @param endDate 结束日期 @@ -1279,7 +1287,7 @@ public static long betweenYear(Date beginDate, Date endDate, boolean isReset) { * * @param beginDate 起始日期 * @param endDate 结束日期 - * @param level 级别,按照天、小时、分、秒、毫秒分为5个等级 + * @param level 级别,按照天、小时、分、秒、毫秒分为5个等级 * @return XX天XX小时XX分XX秒 */ public static String formatBetween(Date beginDate, Date endDate, Fields.Level level) { @@ -1287,7 +1295,7 @@ public static String formatBetween(Date beginDate, Date endDate, Fields.Level le } /** - * 格式化日期间隔输出,精确到毫秒 + * 格式化日期间隔输出,精确到毫秒 * * @param beginDate 起始日期 * @param endDate 结束日期 @@ -1302,7 +1310,7 @@ public static String formatBetween(Date beginDate, Date endDate) { * 格式化日期间隔输出 * * @param betweenMs 日期间隔 - * @param level 级别,按照天、小时、分、秒、毫秒分为5个等级 + * @param level 级别,按照天、小时、分、秒、毫秒分为5个等级 * @return XX天XX小时XX分XX秒XX毫秒 */ public static String formatBetween(long betweenMs, Fields.Level level) { @@ -1310,7 +1318,7 @@ public static String formatBetween(long betweenMs, Fields.Level level) { } /** - * 格式化日期间隔输出,精确到毫秒 + * 格式化日期间隔输出,精确到毫秒 * * @param betweenMs 日期间隔 * @return XX天XX小时XX分XX秒XX毫秒 @@ -1338,20 +1346,20 @@ public static boolean isIn(Date date, Date beginDate, Date endDate) { } /** - * 计时,常用于记录某段代码的执行时间,单位:纳秒 + * 计时,常用于记录某段代码的执行时间,单位:纳秒 * * @param preTime 之前记录的时间 - * @return 时间差,纳秒 + * @return 时间差, 纳秒 */ public static long spendNt(long preTime) { return System.nanoTime() - preTime; } /** - * 计时,常用于记录某段代码的执行时间,单位:毫秒 + * 计时,常用于记录某段代码的执行时间,单位:毫秒 * * @param preTime 之前记录的时间 - * @return 时间差,毫秒 + * @return 时间差, 毫秒 */ public static long spendMs(long preTime) { return System.currentTimeMillis() - preTime; @@ -1394,7 +1402,7 @@ public static int weekCount(Date start, Date end) { /** * 计时器 - * 计算某个过程花费的时间,精确到毫秒 + * 计算某个过程花费的时间,精确到毫秒 * * @return Timer */ @@ -1419,7 +1427,7 @@ public static boolean isLeapYear(int year) { * @param startDate 开始时间 * @param dateField 时间单位 * @param timeLength 时长 - * @param checkedDate 被比较的时间。如果经过时长后的时间晚于被检查的时间,就表示过期 + * @param checkedDate 被比较的时间 如果经过时长后的时间晚于被检查的时间,就表示过期 * @return 是否过期 * @since 3.1.1 */ @@ -1474,7 +1482,7 @@ private static String yearAndQuarter(Calendar cal) { /** - * 生日转为年龄,计算法定年龄 + * 生日转为年龄,计算法定年龄 * * @param birthDay 生日 * @return 年龄 @@ -1521,7 +1529,7 @@ public static int getAge(String birthday) { } /** - * 计算相对于dateToCompare的年龄,长用于计算指定生日在某年的年龄 + * 计算相对于dateToCompare的年龄,长用于计算指定生日在某年的年龄 * * @param birthDay 生日 * @param dateToCompare 需要对比的日期 @@ -2221,7 +2229,7 @@ public static String getTimeFormatText(Date date) { } /** - * 原有时间基础上,加上/减去(负数)N年 + * 原有时间基础上,加上/减去(负数)N年 * * @param date 日期 * @param amount 年份 @@ -2232,7 +2240,7 @@ public static Date addYears(final Date date, final int amount) { } /** - * 原有时间基础上,加上/减去(负数)N月 + * 原有时间基础上,加上/减去(负数)N月 * * @param date 日期 * @param amount 月份 @@ -2243,7 +2251,7 @@ public static Date addMonths(final Date date, final int amount) { } /** - * 原有时间基础上,加上/减去(负数)N周 + * 原有时间基础上,加上/减去(负数)N周 * * @param date 日期 * @param amount 周 @@ -2254,7 +2262,7 @@ public static Date addWeeks(final Date date, final int amount) { } /** - * 原有时间基础上,加上/减去(负数)N天 + * 原有时间基础上,加上/减去(负数)N天 * * @param date 日期 * @param amount 天 @@ -2265,7 +2273,7 @@ public static Date addDays(final Date date, final int amount) { } /** - * 原有时间基础上,加上/减去(负数)N小时 + * 原有时间基础上,加上/减去(负数)N小时 * * @param date 日期 * @param amount 小时 @@ -2276,7 +2284,7 @@ public static Date addHours(final Date date, final int amount) { } /** - * 原有时间基础上,加上/减去(负数)N分钟 + * 原有时间基础上,加上/减去(负数)N分钟 * * @param date 日期 * @param amount 分钟 @@ -2287,7 +2295,7 @@ public static Date addMinutes(final Date date, final int amount) { } /** - * 原有时间基础上,加上/减去(负数)N秒 + * 原有时间基础上,加上/减去(负数)N秒 * * @param date 日期 * @param amount 秒 @@ -2298,7 +2306,7 @@ public static Date addSeconds(final Date date, final int amount) { } /** - * 原有时间基础上,加上/减去(负数)N毫秒 + * 原有时间基础上,加上/减去(负数)N毫秒 * * @param date 日期 * @param amount 毫秒 @@ -2324,7 +2332,7 @@ private static Date add(final Date date, final int field, final int amount) { } /** - * 原有时间基础上,设置加上/减去(负数)N年 + * 原有时间基础上,设置加上/减去(负数)N年 * * @param date 时间 * @param amount 数量 @@ -2335,7 +2343,7 @@ public static Date setYears(final Date date, final int amount) { } /** - * 原有时间基础上,设置加上/减去(负数)N月 + * 原有时间基础上,设置加上/减去(负数)N月 * * @param date 时间 * @param amount 数量 @@ -2347,7 +2355,7 @@ public static Date setMonths(final Date date, final int amount) { /** - * 原有时间基础上,设置N天 + * 原有时间基础上,设置N天 * * @param date 日期 * @param amount 天 @@ -2358,7 +2366,7 @@ public static Date setDays(final Date date, final int amount) { } /** - * 原有时间基础上,设置N小时 + * 原有时间基础上,设置N小时 * * @param date 日期 * @param amount 小时 @@ -2369,7 +2377,7 @@ public static Date setHours(final Date date, final int amount) { } /** - * 原有时间基础上,设置N分钟 + * 原有时间基础上,设置N分钟 * * @param date 日期 * @param amount 小时 @@ -2380,7 +2388,7 @@ public static Date setMinutes(final Date date, final int amount) { } /** - * 原有时间基础上,设置N秒 + * 原有时间基础上,设置N秒 * * @param date 日期 * @param amount 小时 @@ -2391,7 +2399,7 @@ public static Date setSeconds(final Date date, final int amount) { } /** - * 原有时间基础上,设置N毫秒 + * 原有时间基础上,设置N毫秒 * * @param date 日期 * @param amount 小时 @@ -2418,7 +2426,7 @@ private static Date set(final Date date, final int field, final int amount) { } /** - * 将{@code Date}转换为{@code Calendar}。 + * 将{@code Date}转换为{@code Calendar} * * @param date 日期转换为日历的日期 * @return 创建的日历 @@ -2447,7 +2455,7 @@ public static Calendar toCalendar(final Date date, final TimeZone timeZone) { /** * 校验日期格式,日期不能早于当前天 * - * @param dptDate 日期,仅需包含年月日 + * @param dptDate 日期,仅需包含年月日 * @param pattern 日期转移格式 * @return true/false */ @@ -2462,9 +2470,9 @@ public static boolean isDate(String dptDate, String pattern) { } /** - * 校验日期格式,日期不能早于当前天, 默认日期转义格式:yyyy-MM-dd + * 校验日期格式,日期不能早于当前天, 默认日期转义格式:yyyy-MM-dd * - * @param dptDate 日期,仅需包含年月日 + * @param dptDate 日期,仅需包含年月日 * @return true/false */ public static boolean isDate(String dptDate) { @@ -2472,7 +2480,7 @@ public static boolean isDate(String dptDate) { } /** - * 校验前面的日期go,是否早于或者等于后面的日期back + * 校验前面的日期go,是否早于或者等于后面的日期back * * @param go 日期1 * @param back 日期2 @@ -2492,7 +2500,7 @@ public static boolean isBefore(String go, String back, String pattern) { } /** - * 校验前面的日期go,是否早于或者等于后面的日期back + * 校验前面的日期go,是否早于或者等于后面的日期back * * @param go 日期1 * @param back 日期2 @@ -2578,7 +2586,7 @@ public static String getZodiac(Calendar calendar) { /** * 通过生日计算星座 * - * @param month 月,从0开始计数 + * @param month 月,从0开始计数 * @param day 天 * @return 星座名 */ @@ -2589,7 +2597,7 @@ public static String getZodiac(Fields.Month month, int day) { /** * 通过生日计算星座 * - * @param month 月,从0开始计数,见{@link Fields.Month#getValue()} + * @param month 月,从0开始计数,见{@link Fields.Month#getValue()} * @param day 天 * @return 星座名 */ @@ -2598,7 +2606,7 @@ public static String getZodiac(int month, int day) { } /** - * 通过生日计算生肖,只计算1900年后出生的人 + * 通过生日计算生肖,只计算1900年后出生的人 * * @param date 出生日期(年需农历) * @return 星座名 @@ -2608,7 +2616,7 @@ public static String getChineseZodiac(Date date) { } /** - * 通过生日计算生肖,只计算1900年后出生的人 + * 通过生日计算生肖,只计算1900年后出生的人 * * @param calendar 出生日期(年需农历) * @return 星座名 @@ -2621,7 +2629,7 @@ public static String getChineseZodiac(Calendar calendar) { } /** - * 计算生肖,只计算1900年后出生的人 + * 计算生肖,只计算1900年后出生的人 * * @param year 农历年 * @return 生肖名 @@ -2644,7 +2652,7 @@ public static long nanosToMillis(long duration) { } /** - * 纳秒转秒,保留小数 + * 纳秒转秒,保留小数 * * @param duration 时长 * @return 秒 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/DesktopUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/DesktopUtils.java index 976a6a5ee1..f869175652 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/DesktopUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/DesktopUtils.java @@ -61,7 +61,7 @@ public static Rectangle getRectangle() { /** * 设置默认的延迟时间
    - * 当按键执行完后的等待时间,也可以用ThreadUtil.sleep方法代替 + * 当按键执行完后的等待时间,也可以用ThreadUtil.sleep方法代替 * * @param delayMillis 等待毫秒数 */ @@ -102,7 +102,7 @@ public static void rightClick() { /** * 模拟鼠标滚轮滚动 * - * @param wheelAmt 滚动数,负数表示向前滚动,正数向后滚动 + * @param wheelAmt 滚动数,负数表示向前滚动,正数向后滚动 */ public static void mouseWheel(int wheelAmt) { robot.mouseWheel(wheelAmt); @@ -113,7 +113,7 @@ public static void mouseWheel(int wheelAmt) { * 模拟键盘点击
    * 包括键盘的按下和释放 * - * @param keyCodes 按键码列表,见{@link java.awt.event.KeyEvent} + * @param keyCodes 按键码列表,见{@link java.awt.event.KeyEvent} */ public static void keyClick(int... keyCodes) { for (int keyCode : keyCodes) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/EnumUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/EnumUtils.java index 9ab1b1090e..c4034ec556 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/EnumUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/EnumUtils.java @@ -64,7 +64,7 @@ public static List getNames(Class> clazz) { * 获得枚举类中各枚举对象下指定字段的值 * * @param clazz 枚举类 - * @param fieldName 字段名,最终调用getXXX方法 + * @param fieldName 字段名,最终调用getXXX方法 * @return 字段值列表 */ public static List getFieldValues(Class> clazz, String fieldName) { @@ -80,12 +80,12 @@ public static List getFieldValues(Class> clazz, String } /** - * 获取枚举字符串值和枚举对象的Map对应,使用LinkedHashMap保证有序 - * 结果中键为枚举名,值为枚举对象 + * 获取枚举字符串值和枚举对象的Map对应,使用LinkedHashMap保证有序 + * 结果中键为枚举名,值为枚举对象 * * @param 对象 * @param enumClass 枚举类 - * @return 枚举字符串值和枚举对象的Map对应,使用LinkedHashMap保证有序 + * @return 枚举字符串值和枚举对象的Map对应, 使用LinkedHashMap保证有序 */ public static > LinkedHashMap getEnumMap(final Class enumClass) { final LinkedHashMap map = new LinkedHashMap(); @@ -97,10 +97,10 @@ public static > LinkedHashMap getEnumMap(final Clas /** * 获得枚举名对应指定字段值的Map - * 键为枚举名,值为字段值 + * 键为枚举名,值为字段值 * * @param clazz 枚举类 - * @param fieldName 字段名,最终调用getXXX方法 + * @param fieldName 字段名,最终调用getXXX方法 * @return 枚举名对应指定字段值的Map */ public static Map getNameFieldMap(Class> clazz, String fieldName) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/FileUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/FileUtils.java index 45d031df2b..b670319b41 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/FileUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/FileUtils.java @@ -87,7 +87,7 @@ public static String readFile(File file) { reader = new BufferedReader(new java.io.FileReader(file)); String tempString = null; String all = ""; - // 一次读入一行,直到读入null为文件结束 + // 一次读入一行,直到读入null为文件结束 while ((tempString = reader.readLine()) != null) { // 显示行号 all += tempString; @@ -133,7 +133,7 @@ public static File[] ls(String path) { * 目录:里面没有文件时为空 文件:文件大小为0时为空 * * @param file 文件 - * @return 是否为空,当提供非目录时,返回false + * @return 是否为空, 当提供非目录时, 返回false */ public static boolean isEmpty(File file) { if (null == file) { @@ -154,7 +154,7 @@ public static boolean isEmpty(File file) { * 目录是否为空 * * @param file 目录 - * @return 是否为空,当提供非目录时,返回false + * @return 是否为空, 当提供非目录时, 返回false */ public static boolean isNotEmpty(File file) { return false == isEmpty(file); @@ -187,10 +187,10 @@ public static boolean isDirEmpty(File dir) { /** * 递归遍历目录以及子目录中的所有文件 - * 如果提供file为文件,直接返回过滤结果 + * 如果提供file为文件,直接返回过滤结果 * * @param path 当前遍历文件或目录的路径 - * @param fileFilter 文件过滤规则对象,选择要保留的文件,只对文件有效,不过滤目录 + * @param fileFilter 文件过滤规则对象,选择要保留的文件,只对文件有效,不过滤目录 * @return 文件列表 * @since 5.2.2 */ @@ -200,10 +200,10 @@ public static List loopFiles(String path, FileFilter fileFilter) { /** * 递归遍历目录以及子目录中的所有文件 - * 如果提供file为文件,直接返回过滤结果 + * 如果提供file为文件,直接返回过滤结果 * * @param file 当前遍历文件或目录 - * @param fileFilter 文件过滤规则对象,选择要保留的文件,只对文件有效,不过滤目录 + * @param fileFilter 文件过滤规则对象,选择要保留的文件,只对文件有效,不过滤目录 * @return 文件列表 */ public static List loopFiles(File file, FileFilter fileFilter) { @@ -256,7 +256,7 @@ public static List loopFiles(File file) { * 不会扫描子目录 * * @param path 相对ClassPath的目录或者绝对路径目录 - * @return 文件路径列表(如果是jar中的文件,则给定类似.jar!/xxx/xxx的路径) + * @return 文件路径列表(如果是jar中的文件,则给定类似.jar!/xxx/xxx的路径) * @throws InstrumentException 异常 */ public static List listFileNames(String path) throws InstrumentException { @@ -305,7 +305,7 @@ public static List listFileNames(String path) throws InstrumentException } /** - * 创建File对象,相当于调用new File(),不做任何处理 + * 创建File对象,相当于调用new File(),不做任何处理 * * @param path 文件路径 * @return File @@ -315,7 +315,7 @@ public static File newFile(String path) { } /** - * 创建File对象,自动识别相对或绝对路径,相对路径将自动从ClassPath下寻找 + * 创建File对象,自动识别相对或绝对路径,相对路径将自动从ClassPath下寻找 * * @param path 文件路径 * @return File @@ -329,7 +329,7 @@ public static File file(String path) { /** * 创建File对象 - * 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ + * 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ * * @param parent 父目录 * @param path 文件路径 @@ -341,7 +341,7 @@ public static File file(String parent, String path) { /** * 创建File对象 - * 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ + * 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ * * @param parent 父文件对象 * @param path 文件路径 @@ -356,7 +356,7 @@ public static File file(File parent, String path) { /** * 通过多层目录参数创建文件 - * 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ + * 此方法会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ * * @param directory 父目录 * @param names 元素名(多层目录名) @@ -461,7 +461,7 @@ public static File getUserHomeDir() { } /** - * 判断文件是否存在,如果path为null,则返回false + * 判断文件是否存在,如果path为null,则返回false * * @param path 文件路径 * @return 如果存在返回true @@ -471,7 +471,7 @@ public static boolean exist(String path) { } /** - * 判断文件是否存在,如果file为null,则返回false + * 判断文件是否存在,如果file为null,则返回false * * @param file 文件 * @return 如果存在返回true @@ -533,11 +533,11 @@ public static Date lastModifiedTime(String path) { /** * 计算目录或文件的总大小 - * 当给定对象为文件时,直接调用 {@link File#length()} - * 当给定对象为目录时,遍历目录下的所有文件和目录,递归计算其大小,求和返回 + * 当给定对象为文件时,直接调用 {@link File#length()} + * 当给定对象为目录时,遍历目录下的所有文件和目录,递归计算其大小,求和返回 * * @param file 目录或文件 - * @return 总大小,bytes长度 + * @return 总大小, bytes长度 */ public static long size(File file) { Assert.notNull(file, "file argument is null !"); @@ -589,11 +589,11 @@ public static boolean newerThan(File file, long timeMillis) { } /** - * 创建文件及其父目录,如果这个文件存在,直接返回这个文件 - * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 + * 创建文件及其父目录,如果这个文件存在,直接返回这个文件 + * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 * - * @param fullFilePath 文件的全路径,使用POSIX风格 - * @return 文件,若路径为null,返回null + * @param fullFilePath 文件的全路径,使用POSIX风格 + * @return 文件, 若路径为null, 返回null * @throws InstrumentException 异常 */ public static File touch(String fullFilePath) throws InstrumentException { @@ -604,11 +604,11 @@ public static File touch(String fullFilePath) throws InstrumentException { } /** - * 创建文件及其父目录,如果这个文件存在,直接返回这个文件 - * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 + * 创建文件及其父目录,如果这个文件存在,直接返回这个文件 + * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 * * @param file 文件对象 - * @return 文件,若路径为null,返回null + * @return 文件, 若路径为null, 返回null * @throws InstrumentException 异常 */ public static File touch(File file) throws InstrumentException { @@ -627,8 +627,8 @@ public static File touch(File file) throws InstrumentException { } /** - * 创建文件及其父目录,如果这个文件存在,直接返回这个文件 - * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 + * 创建文件及其父目录,如果这个文件存在,直接返回这个文件 + * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 * * @param parent 父文件对象 * @param path 文件路径 @@ -640,8 +640,8 @@ public static File touch(File parent, String path) throws InstrumentException { } /** - * 创建文件及其父目录,如果这个文件存在,直接返回这个文件 - * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 + * 创建文件及其父目录,如果这个文件存在,直接返回这个文件 + * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 * * @param parent 父文件对象 * @param path 文件路径 @@ -667,9 +667,9 @@ public static File mkParentDirs(File file) { } /** - * 创建父文件夹,如果存在直接返回此文件夹 + * 创建父文件夹,如果存在直接返回此文件夹 * - * @param path 文件夹路径,使用POSIX格式,无论哪个平台 + * @param path 文件夹路径,使用POSIX格式,无论哪个平台 * @return 创建的目录 */ public static File mkParentDirs(String path) { @@ -681,7 +681,7 @@ public static File mkParentDirs(String path) { /** * 删除文件或者文件夹 - * 路径如果为相对路径,会转换为ClassPath路径! 注意:删除文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 + * 路径如果为相对路径,会转换为ClassPath路径! 注意:删除文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 * 某个文件删除失败会终止删除操作 * * @param fullFileOrDirPath 文件或者目录的路径 @@ -694,7 +694,7 @@ public static boolean del(String fullFileOrDirPath) throws InstrumentException { /** * 删除文件或者文件夹 - * 注意:删除文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 + * 注意:删除文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 * 某个文件删除失败会终止删除操作 * * @param file 文件对象 @@ -719,7 +719,7 @@ public static boolean del(File file) throws InstrumentException { /** * 清空文件夹 - * 注意:清空文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 + * 注意:清空文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 * 某个文件删除失败会终止删除操作 * * @param dirPath 文件夹路径 @@ -732,7 +732,7 @@ public static boolean clean(String dirPath) throws InstrumentException { /** * 清空文件夹 - * 注意:清空文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 + * 注意:清空文件夹时不会判断文件夹是否为空,如果不空则递归删除子文件或文件夹 * 某个文件删除失败会终止删除操作 * * @param directory 文件夹 @@ -757,10 +757,10 @@ public static boolean clean(File directory) throws InstrumentException { } /** - * 创建文件夹,如果存在直接返回此文件夹 - * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 + * 创建文件夹,如果存在直接返回此文件夹 + * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 * - * @param dirPath 文件夹路径,使用POSIX格式,无论哪个平台 + * @param dirPath 文件夹路径,使用POSIX格式,无论哪个平台 * @return 创建的目录 */ public static File mkdir(String dirPath) { @@ -772,8 +772,8 @@ public static File mkdir(String dirPath) { } /** - * 创建文件夹,会递归自动创建其不存在的父文件夹,如果存在直接返回此文件夹 - * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 + * 创建文件夹,会递归自动创建其不存在的父文件夹,如果存在直接返回此文件夹 + * 此方法不对File对象类型做判断,如果File不存在,无法判断其类型 * * @param dir 目录 * @return 创建的目录 @@ -805,7 +805,7 @@ public static File createTempFile(File dir) throws InstrumentException { * 创建后的文件名为 prefix[Randon].tmp * * @param dir 临时文件创建的所在目录 - * @param isReCreat 是否重新创建文件(删掉原来的,创建新的) + * @param isReCreat 是否重新创建文件(删掉原来的,创建新的) * @return 临时文件 * @throws InstrumentException 异常 */ @@ -817,10 +817,10 @@ public static File createTempFile(File dir, boolean isReCreat) throws Instrument * 创建临时文件 * 创建后的文件名为 prefix[Randon].suffix From com.jodd.io.FileUtils * - * @param prefix 前缀,至少3个字符 - * @param suffix 后缀,如果null则使用默认.tmp + * @param prefix 前缀,至少3个字符 + * @param suffix 后缀,如果null则使用默认.tmp * @param dir 临时文件创建的所在目录 - * @param isReCreat 是否重新创建文件(删掉原来的,创建新的) + * @param isReCreat 是否重新创建文件(删掉原来的,创建新的) * @return 临时文件 * @throws InstrumentException 异常 */ @@ -846,7 +846,7 @@ public static File createTempFile(String prefix, String suffix, File dir, boolea * 通过JDK7+的 {@link Files#copy(Path, Path, CopyOption...)} 方法拷贝文件 * * @param src 源文件路径 - * @param dest 目标文件或目录路径,如果为目录使用与源文件相同的文件名 + * @param dest 目标文件或目录路径,如果为目录使用与源文件相同的文件名 * @param options {@link StandardCopyOption} * @return File * @throws InstrumentException 异常 @@ -861,7 +861,7 @@ public static File copyFile(String src, String dest, StandardCopyOption... optio * 通过JDK7+的 {@link Files#copy(Path, Path, CopyOption...)} 方法拷贝文件 * * @param src 源文件 - * @param dest 目标文件或目录,如果为目录使用与源文件相同的文件名 + * @param dest 目标文件或目录,如果为目录使用与源文件相同的文件名 * @param options {@link StandardCopyOption} * @return 目标文件 * @throws InstrumentException 异常 @@ -883,7 +883,7 @@ public static File copyFile(File src, File dest, StandardCopyOption... options) * 通过JDK7+的 {@link Files#copy(Path, Path, CopyOption...)} 方法拷贝文件 * * @param src 源文件路径 - * @param dest 目标文件或目录,如果为目录使用与源文件相同的文件名 + * @param dest 目标文件或目录,如果为目录使用与源文件相同的文件名 * @param options {@link StandardCopyOption} * @return Path * @throws InstrumentException 异常 @@ -902,10 +902,10 @@ public static Path copyFile(Path src, Path dest, StandardCopyOption... options) /** * 复制文件或目录 - * 如果目标文件为目录,则将源文件以相同文件名拷贝到目标目录 + * 如果目标文件为目录,则将源文件以相同文件名拷贝到目标目录 * * @param srcPath 源文件或目录 - * @param destPath 目标文件或目录,目标不存在会自动创建(目录、文件都创建) + * @param destPath 目标文件或目录,目标不存在会自动创建(目录、文件都创建) * @param isOverride 是否覆盖目标文件 * @return 目标目录或文件 * @throws InstrumentException 异常 @@ -919,13 +919,13 @@ public static File copy(String srcPath, String destPath, boolean isOverride) thr * 情况如下: * *
    -     * 1、src和dest都为目录,则将src目录及其目录下所有文件目录拷贝到dest下
    -     * 2、src和dest都为文件,直接复制,名字为dest
    -     * 3、src为文件,dest为目录,将src拷贝到dest目录下
    +     * 1、src和dest都为目录,则将src目录及其目录下所有文件目录拷贝到dest下
    +     * 2、src和dest都为文件,直接复制,名字为dest
    +     * 3、src为文件,dest为目录,将src拷贝到dest目录下
          * 
    * * @param src 源文件 - * @param dest 目标文件或目录,目标不存在会自动创建(目录、文件都创建) + * @param dest 目标文件或目录,目标不存在会自动创建(目录、文件都创建) * @param isOverride 是否覆盖目标文件 * @return 目标目录或文件 * @throws InstrumentException 异常 @@ -939,13 +939,13 @@ public static File copy(File src, File dest, boolean isOverride) throws Instrume * 情况如下: * *
    -     * 1、src和dest都为目录,则讲src下所有文件目录拷贝到dest下
    -     * 2、src和dest都为文件,直接复制,名字为dest
    -     * 3、src为文件,dest为目录,将src拷贝到dest目录下
    +     * 1、src和dest都为目录,则讲src下所有文件目录拷贝到dest下
    +     * 2、src和dest都为文件,直接复制,名字为dest
    +     * 3、src为文件,dest为目录,将src拷贝到dest目录下
          * 
    * * @param src 源文件 - * @param dest 目标文件或目录,目标不存在会自动创建(目录、文件都创建) + * @param dest 目标文件或目录,目标不存在会自动创建(目录、文件都创建) * @param isOverride 是否覆盖目标文件 * @return 目标目录或文件 * @throws InstrumentException 异常 @@ -959,13 +959,13 @@ public static File copyContent(File src, File dest, boolean isOverride) throws I * 情况如下: * *
    -     * 1、src和dest都为目录,则讲src下所有文件(包括子目录)拷贝到dest下
    -     * 2、src和dest都为文件,直接复制,名字为dest
    -     * 3、src为文件,dest为目录,将src拷贝到dest目录下
    +     * 1、src和dest都为目录,则讲src下所有文件(包括子目录)拷贝到dest下
    +     * 2、src和dest都为文件,直接复制,名字为dest
    +     * 3、src为文件,dest为目录,将src拷贝到dest目录下
          * 
    * * @param src 源文件 - * @param dest 目标文件或目录,目标不存在会自动创建(目录、文件都创建) + * @param dest 目标文件或目录,目标不存在会自动创建(目录、文件都创建) * @param isOverride 是否覆盖目标文件 * @return 目标目录或文件 * @throws InstrumentException 异常 @@ -979,7 +979,7 @@ public static File copyFilesFromDir(File src, File dest, boolean isOverride) thr * * @param src 源文件或者目录 * @param dest 目标文件或者目录 - * @param isOverride 是否覆盖目标,只有目标为文件才覆盖 + * @param isOverride 是否覆盖目标,只有目标为文件才覆盖 * @throws InstrumentException 异常 */ public static void move(File src, File dest, boolean isOverride) throws InstrumentException { @@ -988,7 +988,7 @@ public static void move(File src, File dest, boolean isOverride) throws Instrume throw new InstrumentException("File not found: " + src); } - // 来源为文件夹,目标为文件 + // 来源为文件夹,目标为文件 if (src.isDirectory() && dest.isFile()) { throw new InstrumentException(StringUtils.format("Can not move directory [{}] to file [{}]", src, dest)); } @@ -997,13 +997,13 @@ public static void move(File src, File dest, boolean isOverride) throws Instrume dest.delete(); } - // 来源为文件,目标为文件夹 + // 来源为文件,目标为文件夹 if (src.isFile() && dest.isDirectory()) { dest = new File(dest, src.getName()); } if (false == src.renameTo(dest)) { - // 在文件系统不同的情况下,renameTo会失败,此时使用copy,然后删除原文件 + // 在文件系统不同的情况下,renameTo会失败,此时使用copy,然后删除原文件 try { copy(src, dest, isOverride); src.delete(); @@ -1015,23 +1015,23 @@ public static void move(File src, File dest, boolean isOverride) throws Instrume } /** - * 修改文件或目录的文件名,不变更路径,只是简单修改文件名 + * 修改文件或目录的文件名,不变更路径,只是简单修改文件名 * 重命名有两种模式: - * 1、isRetainExt为true时,保留原扩展名: + * 1、isRetainExt为true时,保留原扩展名: * *
          * FileUtils.rename(file, "aaa", true) xx/xx.png =》xx/aaa.png
          * 
    *

    - * 2、isRetainExt为false时,不保留原扩展名,需要在newName中 + * 2、isRetainExt为false时,不保留原扩展名,需要在newName中 * *

          * FileUtils.rename(file, "aaa.jpg", false) xx/xx.png =》xx/aaa.jpg
          * 
    * * @param file 被修改的文件 - * @param newName 新的文件名,包括扩展名 - * @param isRetainExt 是否保留原文件的扩展名,如果保留,则newName不需要加扩展名 + * @param newName 新的文件名,包括扩展名 + * @param isRetainExt 是否保留原文件的扩展名,如果保留,则newName不需要加扩展名 * @param isOverride 是否覆盖目标文件 * @return 目标文件 * @since 3.1.9 @@ -1053,7 +1053,7 @@ public static File rename(File file, String newName, boolean isRetainExt, boolea * 获取规范的绝对路径 * * @param file 文件 - * @return 规范绝对路径,如果传入file为null,返回null + * @return 规范绝对路径, 如果传入file为null, 返回null */ public static String getCanonicalPath(File file) { if (null == file) { @@ -1098,9 +1098,9 @@ public static String getAbsolutePath(String path, Class baseClass) { } /** - * 获取绝对路径,相对于ClassPath的目录 - * 如果给定就是绝对路径,则返回原路径,原路径把所有\替换为/ - * 兼容Spring风格的路径表示,例如:classpath:config/example.setting也会被识别后转换 + * 获取绝对路径,相对于ClassPath的目录 + * 如果给定就是绝对路径,则返回原路径,原路径把所有\替换为/ + * 兼容Spring风格的路径表示,例如:classpath:config/example.setting也会被识别后转换 * * @param path 相对路径 * @return 绝对路径 @@ -1129,7 +1129,7 @@ public static String getAbsolutePath(File file) { /** * 给定路径已经是绝对路径 - * 此方法并没有针对路径做标准化,建议先执行{@link #normalize(String)}方法标准化路径后判断 + * 此方法并没有针对路径做标准化,建议先执行{@link #normalize(String)}方法标准化路径后判断 * * @param path 需要检查的Path * @return 是否已经是绝对路径 @@ -1142,7 +1142,7 @@ public static boolean isAbsolutePath(String path) { } /** - * 判断是否为目录,如果path为null,则返回false + * 判断是否为目录,如果path为null,则返回false * * @param path 文件路径 * @return 如果为目录true @@ -1152,7 +1152,7 @@ public static boolean isDirectory(String path) { } /** - * 判断是否为目录,如果file为null,则返回false + * 判断是否为目录,如果file为null,则返回false * * @param file 文件 * @return 如果为目录true @@ -1162,7 +1162,7 @@ public static boolean isDirectory(File file) { } /** - * 判断是否为目录,如果file为null,则返回false + * 判断是否为目录,如果file为null,则返回false * * @param path {@link Path} * @param isFollowLinks 是否追踪到软链对应的真实地址 @@ -1178,7 +1178,7 @@ public static boolean isDirectory(Path path, boolean isFollowLinks) { } /** - * 判断是否为文件,如果path为null,则返回false + * 判断是否为文件,如果path为null,则返回false * * @param path 文件路径 * @return 如果为文件true @@ -1188,7 +1188,7 @@ public static boolean isFile(String path) { } /** - * 判断是否为文件,如果file为null,则返回false + * 判断是否为文件,如果file为null,则返回false * * @param file 文件 * @return 如果为文件true @@ -1198,7 +1198,7 @@ public static boolean isFile(File file) { } /** - * 判断是否为文件,如果file为null,则返回false + * 判断是否为文件,如果file为null,则返回false * * @param path 文件 * @param isFollowLinks 是否跟踪软链(快捷方式) @@ -1214,7 +1214,7 @@ public static boolean isFile(Path path, boolean isFollowLinks) { /** * 检查两个文件是否是同一个文件 - * 所谓文件相同,是指File对象是否指向同一个文件或文件夹 + * 所谓文件相同,是指File对象是否指向同一个文件或文件夹 * * @param file1 文件1 * @param file2 文件2 @@ -1228,7 +1228,7 @@ public static boolean equals(File file1, File file2) throws InstrumentException if (false == file1.exists() || false == file2.exists()) { // 两个文件都不存在判断其路径是否相同 return false == file1.exists() && false == file2.exists() && pathEquals(file1, file2); - // 对于一个存在一个不存在的情况,一定不相同 + // 对于一个存在一个不存在的情况,一定不相同 } try { return Files.isSameFile(file1.toPath(), file2.toPath()); @@ -1239,12 +1239,12 @@ public static boolean equals(File file1, File file2) throws InstrumentException /** * 比较两个文件内容是否相同 - * 首先比较长度,长度一致再比较内容 + * 首先比较长度,长度一致再比较内容 * 此方法来自Apache Commons io * * @param file1 文件1 * @param file2 文件2 - * @return 两个文件内容一致返回true,否则false + * @return 两个文件内容一致返回true, 否则false * @throws InstrumentException 异常 */ public static boolean contentEquals(File file1, File file2) throws InstrumentException { @@ -1254,7 +1254,7 @@ public static boolean contentEquals(File file1, File file2) throws InstrumentExc } if (false == file1Exists) { - // 两个文件都不存在,返回true + // 两个文件都不存在,返回true return true; } @@ -1288,12 +1288,12 @@ public static boolean contentEquals(File file1, File file2) throws InstrumentExc /** * 比较两个文件内容是否相同 - * 首先比较长度,长度一致再比较内容,比较内容采用按行读取,每行比较 + * 首先比较长度,长度一致再比较内容,比较内容采用按行读取,每行比较 * 此方法来自Apache Commons io * * @param file1 文件1 * @param file2 文件2 - * @param charset 编码,null表示使用平台默认编码 两个文件内容一致返回true,否则false + * @param charset 编码,null表示使用平台默认编码 两个文件内容一致返回true,否则false * @return the boolean * @throws InstrumentException 异常 */ @@ -1304,7 +1304,7 @@ public static boolean contentEqualsIgnoreEOL(File file1, File file2, Charset cha } if (!file1Exists) { - // 两个文件都不存在,返回true + // 两个文件都不存在,返回true return true; } @@ -1332,7 +1332,7 @@ public static boolean contentEqualsIgnoreEOL(File file1, File file2, Charset cha /** * 文件路径是否相同 - * 取两个文件的绝对路径比较,在Windows下忽略大小写,在Linux下不忽略。 + * 取两个文件的绝对路径比较,在Windows下忽略大小写,在Linux下不忽略 * * @param file1 文件1 * @param file2 文件2 @@ -1388,7 +1388,7 @@ public static int lastIndexOfSeparator(String filePath) { /** * 判断文件是否被改动 - * 如果文件对象为 null 或者文件不存在,被视为改动 + * 如果文件对象为 null 或者文件不存在,被视为改动 * * @param file 文件对象 * @param lastModifyTime 上次的改动时间 @@ -1403,12 +1403,12 @@ public static boolean isModifed(File file, long lastModifyTime) { /** * 修复路径 - * 如果原路径尾部有分隔符,则保留为标准分隔符(/),否则不保留 + * 如果原路径尾部有分隔符,则保留为标准分隔符(/),否则不保留 *
      *
    1. 1. 统一用 /
    2. *
    3. 2. 多个 / 转换为一个 /
    4. *
    5. 3. 去除两边空格
    6. - *
    7. 4. .. 和 . 转换为绝对路径,当..多于已有路径时,直接返回根路径
    8. + *
    9. 4. .. 和 . 转换为绝对路径,当..多于已有路径时,直接返回根路径
    10. *
    *

    * 栗子: @@ -1439,7 +1439,7 @@ public static String normalize(String path) { return null; } - // 兼容Spring风格的ClassPath路径,去除前缀,不区分大小写 + // 兼容Spring风格的ClassPath路径,去除前缀,不区分大小写 String pathToUse = StringUtils.removePrefixIgnoreCase(path, "classpath:"); // 去除file:前缀 pathToUse = StringUtils.removePrefixIgnoreCase(pathToUse, "file:"); @@ -1475,7 +1475,7 @@ public static String normalize(String path) { for (int i = pathList.size() - 1; i >= 0; i--) { element = pathList.get(i); if (Symbol.DOT.equals(element)) { - // 当前目录,丢弃 + // 当前目录,丢弃 } else if (Symbol.DOUBLE_DOT.equals(element)) { tops++; } else { @@ -1515,7 +1515,7 @@ public static String subPath(String rootDir, File file) { } /** - * 获得相对子路径,忽略大小写 + * 获得相对子路径,忽略大小写 *

    * 栗子: * @@ -1542,10 +1542,10 @@ public static String subPath(String dirPath, String filePath) { } /** - * 获取指定位置的子路径部分,支持负数,例如index为-1表示从后数第一个节点位置 + * 获取指定位置的子路径部分,支持负数,例如index为-1表示从后数第一个节点位置 * * @param path 路径 - * @param index 路径节点位置,支持负数(负数从后向前计数) + * @param index 路径节点位置,支持负数(负数从后向前计数) * @return 获取的子路径 * @since 3.1.9 */ @@ -1565,7 +1565,7 @@ public static Path getLastPathEle(Path path) { } /** - * 获取指定位置的子路径部分,支持负数,例如起始为-1表示从后数第一个节点位置 + * 获取指定位置的子路径部分,支持负数,例如起始为-1表示从后数第一个节点位置 * * @param path 路径 * @param fromIndex 起始路径节点(包括) @@ -1694,7 +1694,7 @@ public static String mainName(String fileName) { } if (0 == begin || begin > end) { if (CharUtils.isFileSeparator(c)) { - //查找最后一个路径分隔符(/或者\),如果这个分隔符在.之后,则继续查找,否则结束 + //查找最后一个路径分隔符(/或者\),如果这个分隔符在.之后,则继续查找,否则结束 begin = i + 1; break; } @@ -1705,7 +1705,7 @@ public static String mainName(String fileName) { } /** - * 获取文件扩展名,扩展名不带“.” + * 获取文件扩展名,扩展名不带“.” * * @param file 文件 * @return 扩展名 @@ -1721,7 +1721,7 @@ public static String extName(File file) { } /** - * 获得文件的扩展名,扩展名不带“.” + * 获得文件的扩展名,扩展名不带“.” * * @param fileName 文件名 * @return 扩展名 @@ -1741,7 +1741,7 @@ public static String extName(String fileName) { } /** - * 判断文件路径是否有指定后缀,忽略大小写 + * 判断文件路径是否有指定后缀,忽略大小写 * 常用语判断扩展名 * * @param file 文件或目录 @@ -1756,7 +1756,7 @@ public static boolean pathEndsWith(File file, String suffix) { * 根据文件流的头部信息获得文件类型 * * @param file 文件 {@link File} - * @return 类型,文件的扩展名,未找到为null + * @return 类型, 文件的扩展名, 未找到为null * @throws InstrumentException 异常 * @see FileType#getType(File) */ @@ -1824,7 +1824,7 @@ public static BufferedInputStream getInputStream(String path) throws InstrumentE } /** - * 获得BOM输入流,用于处理带BOM头的文件 + * 获得BOM输入流,用于处理带BOM头的文件 * * @param file 文件 * @return 输入流 @@ -2093,7 +2093,7 @@ public static > T readLines(String path, Charset ch } /** - * 从文件中读取每一行数据,数据编码为UTF-8 + * 从文件中读取每一行数据,数据编码为UTF-8 * * @param 集合类型 * @param file 文件路径 @@ -2135,7 +2135,7 @@ public static > T readLines(File file, Charset char } /** - * 从文件中读取每一行数据,编码为UTF-8 + * 从文件中读取每一行数据,编码为UTF-8 * * @param 集合类型 * @param url 文件的URL @@ -2220,7 +2220,7 @@ public static List readLines(URL url, Charset charset) throws Instrument } /** - * 从文件中读取每一行数据,编码为UTF-8 + * 从文件中读取每一行数据,编码为UTF-8 * * @param path 文件路径 * @return 文件中的每行内容的集合List @@ -2293,7 +2293,7 @@ public static List readLines(File file, Charset charset) throws Instrume } /** - * 按行处理文件内容,编码为UTF-8 + * 按行处理文件内容,编码为UTF-8 * * @param file 文件 * @param lineHandler {@link LineHandler}行处理器 @@ -2460,7 +2460,7 @@ public static BufferedOutputStream getOutputStream(File file) throws InstrumentE /** * 获得一个输出流对象 * - * @param path 输出到的文件路径,绝对路径 + * @param path 输出到的文件路径,绝对路径 * @return 输出流对象 * @throws InstrumentException 异常 */ @@ -2471,7 +2471,7 @@ public static BufferedOutputStream getOutputStream(String path) throws Instrumen /** * 获得一个带缓存的写入对象 * - * @param path 输出路径,绝对路径 + * @param path 输出路径,绝对路径 * @param charsetName 字符集 * @param isAppend 是否追加 * @return BufferedReader对象 @@ -2484,7 +2484,7 @@ public static BufferedWriter getWriter(String path, String charsetName, boolean /** * 获得一个带缓存的写入对象 * - * @param path 输出路径,绝对路径 + * @param path 输出路径,绝对路径 * @param charset 字符集 * @param isAppend 是否追加 * @return BufferedReader对象 @@ -2521,9 +2521,9 @@ public static BufferedWriter getWriter(File file, Charset charset, boolean isApp } /** - * 获得一个打印写入对象,可以有print + * 获得一个打印写入对象,可以有print * - * @param path 输出路径,绝对路径 + * @param path 输出路径,绝对路径 * @param charset 字符集 * @param isAppend 是否追加 * @return 打印对象 @@ -2534,9 +2534,9 @@ public static PrintWriter getPrintWriter(String path, String charset, boolean is } /** - * 获得一个打印写入对象,可以有print + * 获得一个打印写入对象,可以有print * - * @param path 输出路径,绝对路径 + * @param path 输出路径,绝对路径 * @param charset 字符集 * @param isAppend 是否追加 * @return 打印对象 @@ -2547,7 +2547,7 @@ public static PrintWriter getPrintWriter(String path, Charset charset, boolean i } /** - * 获得一个打印写入对象,可以有print + * 获得一个打印写入对象,可以有print * * @param file 文件 * @param charset 字符集 @@ -2575,7 +2575,7 @@ public static String getLineSeparator() { } /** - * 将String写入文件,覆盖模式,字符集为UTF-8 + * 将String写入文件,覆盖模式,字符集为UTF-8 * * @param content 写入的内容 * @param path 文件路径 @@ -2587,7 +2587,7 @@ public static File writeUtf8String(String content, String path) throws Instrumen } /** - * 将String写入文件,覆盖模式,字符集为UTF-8 + * 将String写入文件,覆盖模式,字符集为UTF-8 * * @param content 写入的内容 * @param file 文件 @@ -2599,7 +2599,7 @@ public static File writeUtf8String(String content, File file) throws InstrumentE } /** - * 将String写入文件,覆盖模式 + * 将String写入文件,覆盖模式 * * @param content 写入的内容 * @param path 文件路径 @@ -2612,7 +2612,7 @@ public static File writeString(String content, String path, String charset) thro } /** - * 将String写入文件,覆盖模式 + * 将String写入文件,覆盖模式 * * @param content 写入的内容 * @param path 文件路径 @@ -2625,7 +2625,7 @@ public static File writeString(String content, String path, Charset charset) thr } /** - * 将String写入文件,覆盖模式 + * 将String写入文件,覆盖模式 * * @param content 写入的内容 * @param file 文件 @@ -2638,7 +2638,7 @@ public static File writeString(String content, File file, String charset) throws } /** - * 将String写入文件,覆盖模式 + * 将String写入文件,覆盖模式 * * @param content 写入的内容 * @param file 文件 @@ -2651,7 +2651,7 @@ public static File writeString(String content, File file, Charset charset) throw } /** - * 将String写入文件,UTF-8编码追加模式 + * 将String写入文件,UTF-8编码追加模式 * * @param content 写入的内容 * @param path 文件路径 @@ -2664,7 +2664,7 @@ public static File appendUtf8String(String content, String path) throws Instrume } /** - * 将String写入文件,追加模式 + * 将String写入文件,追加模式 * * @param content 写入的内容 * @param path 文件路径 @@ -2677,7 +2677,7 @@ public static File appendString(String content, String path, String charset) thr } /** - * 将String写入文件,追加模式 + * 将String写入文件,追加模式 * * @param content 写入的内容 * @param path 文件路径 @@ -2690,7 +2690,7 @@ public static File appendString(String content, String path, Charset charset) th } /** - * 将String写入文件,UTF-8编码追加模式 + * 将String写入文件,UTF-8编码追加模式 * * @param content 写入的内容 * @param file 文件 @@ -2703,7 +2703,7 @@ public static File appendUtf8String(String content, File file) throws Instrument } /** - * 将String写入文件,追加模式 + * 将String写入文件,追加模式 * * @param content 写入的内容 * @param file 文件 @@ -2716,7 +2716,7 @@ public static File appendString(String content, File file, String charset) throw } /** - * 将String写入文件,追加模式 + * 将String写入文件,追加模式 * * @param content 写入的内容 * @param file 文件 @@ -2729,7 +2729,7 @@ public static File appendString(String content, File file, Charset charset) thro } /** - * 将列表写入文件,覆盖模式,编码为UTF-8 + * 将列表写入文件,覆盖模式,编码为UTF-8 * * @param 集合元素类型 * @param list 列表 @@ -2743,7 +2743,7 @@ public static File writeUtf8Lines(Collection list, String path) throws In } /** - * 将列表写入文件,覆盖模式,编码为UTF-8 + * 将列表写入文件,覆盖模式,编码为UTF-8 * * @param 集合元素类型 * @param list 列表 @@ -2757,7 +2757,7 @@ public static File writeUtf8Lines(Collection list, File file) throws Inst } /** - * 将列表写入文件,覆盖模式 + * 将列表写入文件,覆盖模式 * * @param 集合元素类型 * @param list 列表 @@ -2771,7 +2771,7 @@ public static File writeLines(Collection list, String path, String charse } /** - * 将列表写入文件,覆盖模式 + * 将列表写入文件,覆盖模式 * * @param 集合元素类型 * @param list 列表 @@ -2785,7 +2785,7 @@ public static File writeLines(Collection list, String path, Charset chars } /** - * 将列表写入文件,覆盖模式 + * 将列表写入文件,覆盖模式 * * @param 集合元素类型 * @param list 列表 @@ -2799,7 +2799,7 @@ public static File writeLines(Collection list, File file, String charset) } /** - * 将列表写入文件,覆盖模式 + * 将列表写入文件,覆盖模式 * * @param 集合元素类型 * @param list 列表 @@ -2813,7 +2813,7 @@ public static File writeLines(Collection list, File file, Charset charset } /** - * 将列表写入文件,追加模式 + * 将列表写入文件,追加模式 * * @param 集合元素类型 * @param list 列表 @@ -2827,7 +2827,7 @@ public static File appendUtf8Lines(Collection list, File file) throws Ins } /** - * 将列表写入文件,追加模式 + * 将列表写入文件,追加模式 * * @param 集合元素类型 * @param list 列表 @@ -2841,7 +2841,7 @@ public static File appendUtf8Lines(Collection list, String path) throws I } /** - * 将列表写入文件,追加模式 + * 将列表写入文件,追加模式 * * @param 集合元素类型 * @param list 列表 @@ -2855,7 +2855,7 @@ public static File appendLines(Collection list, String path, String chars } /** - * 将列表写入文件,追加模式 + * 将列表写入文件,追加模式 * * @param 集合元素类型 * @param list 列表 @@ -2870,7 +2870,7 @@ public static File appendLines(Collection list, File file, String charset } /** - * 将列表写入文件,追加模式 + * 将列表写入文件,追加模式 * * @param 集合元素类型 * @param list 列表 @@ -2884,7 +2884,7 @@ public static File appendLines(Collection list, String path, Charset char } /** - * 将列表写入文件,追加模式 + * 将列表写入文件,追加模式 * * @param 集合元素类型 * @param list 列表 @@ -2959,11 +2959,11 @@ public static File writeLines(Collection list, File file, Charset charset } /** - * 将Map写入文件,每个键值对为一行,一行中键与值之间使用kvSeparator分隔 + * 将Map写入文件,每个键值对为一行,一行中键与值之间使用kvSeparator分隔 * * @param map Map * @param file 文件 - * @param kvSeparator 键和值之间的分隔符,如果传入null使用默认分隔符" = " + * @param kvSeparator 键和值之间的分隔符,如果传入null使用默认分隔符" = " * @param isAppend 是否追加 * @return 目标文件 * @throws InstrumentException 异常 @@ -2973,12 +2973,12 @@ public static File writeUtf8Map(Map map, File file, String kvSeparator, bo } /** - * 将Map写入文件,每个键值对为一行,一行中键与值之间使用kvSeparator分隔 + * 将Map写入文件,每个键值对为一行,一行中键与值之间使用kvSeparator分隔 * * @param map Map * @param file 文件 * @param charset 字符集编码 - * @param kvSeparator 键和值之间的分隔符,如果传入null使用默认分隔符" = " + * @param kvSeparator 键和值之间的分隔符,如果传入null使用默认分隔符" = " * @param isAppend 是否追加 * @return 目标文件 * @throws InstrumentException 异常 @@ -3101,10 +3101,10 @@ public static String readableFileSize(long size) { /** * 转换文件编码 - * 此方法用于转换文件编码,读取的文件实际编码必须与指定的srcCharset编码一致,否则导致乱码 + * 此方法用于转换文件编码,读取的文件实际编码必须与指定的srcCharset编码一致,否则导致乱码 * * @param file 文件 - * @param srcCharset 原文件的编码,必须与文件内容的编码保持一致 + * @param srcCharset 原文件的编码,必须与文件内容的编码保持一致 * @param destCharset 转码后的编码 * @return 被转换编码的文件 * @since 3.1.9 @@ -3129,9 +3129,9 @@ public static File convertLineSeparator(File file, Charset charset, LineSeparato } /** - * 清除文件名中的在Windows下不支持的非法字符,包括: \ / : * ? " < > | + * 清除文件名中的在Windows下不支持的非法字符,包括: \ / : * ? " < > | * - * @param fileName 文件名(必须不包括路径,否则路径符将被替换) + * @param fileName 文件名(必须不包括路径,否则路径符将被替换) * @return 清理后的文件名 * @since 3.3.1 */ @@ -3140,9 +3140,9 @@ public static String cleanInvalid(String fileName) { } /** - * 文件名中是否包含在Windows下不支持的非法字符,包括: \ / : * ? " < > | + * 文件名中是否包含在Windows下不支持的非法字符,包括: \ / : * ? " < > | * - * @param fileName 文件名(必须不包括路径,否则路径符将被替换) + * @param fileName 文件名(必须不包括路径,否则路径符将被替换) * @return 是否包含非法字符 * @since 3.3.1 */ @@ -3153,7 +3153,7 @@ public static boolean containsInvalid(String fileName) { /** * 计算文件CRC32校验码 * - * @param file 文件,不能为目录 + * @param file 文件,不能为目录 * @return CRC32值 * @throws InstrumentException 异常 */ @@ -3164,7 +3164,7 @@ public static long checksumCRC32(File file) throws InstrumentException { /** * 计算文件校验码 * - * @param file 文件,不能为目录 + * @param file 文件,不能为目录 * @param checksum {@link Checksum} * @return Checksum * @throws InstrumentException 异常 @@ -3183,7 +3183,7 @@ public static Checksum checksum(File file, Checksum checksum) throws InstrumentE /** * 获取Web项目下的web root路径 - * 原理是首先获取ClassPath路径,由于在web项目中ClassPath位于 WEB-INF/classes/下,故向上获取两级目录即可。 + * 原理是首先获取ClassPath路径,由于在web项目中ClassPath位于 WEB-INF/classes/下,故向上获取两级目录即可 * * @return web root路径 */ @@ -3207,7 +3207,7 @@ public static File getWebRoot() { * * @param filePath 目录或文件路径 * @param level 层级 - * @return 路径File,如果不存在返回null + * @return 路径File, 如果不存在返回null */ public static String getParent(String filePath, int level) { final File parent = getParent(file(filePath), level); @@ -3230,7 +3230,7 @@ public static String getParent(String filePath, int level) { * * @param file 目录或文件 * @param level 层级 - * @return 路径File,如果不存在返回null + * @return 路径File, 如果不存在返回null */ public static File getParent(File file, int level) { if (level < 1 || null == file) { @@ -3250,7 +3250,7 @@ public static File getParent(File file, int level) { } /** - * 检查父完整路径是否为自路径的前半部分,如果不是说明不是子路径,可能存在slip注入。 + * 检查父完整路径是否为自路径的前半部分,如果不是说明不是子路径,可能存在slip注入 *

    * 见http://blog.nsfocus.net/zip-slip-2/ * diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/HashUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/HashUtils.java index 6cf9ca3025..1ef01eb823 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/HashUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/HashUtils.java @@ -199,7 +199,7 @@ public static int fnvHash(String data) { } /** - * Thomas Wang的算法,整数hash + * Thomas Wang的算法,整数hash * * @param key 整数 * @return hash值 @@ -441,7 +441,7 @@ public static int javaDefaultHash(String str) { } /** - * 混合hash算法,输出64位的值 + * 混合hash算法,输出64位的值 * * @param str 字符串 * @return hash值 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/HexUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/HexUtils.java index 3c70d09a2a..27d9cb49de 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/HexUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/HexUtils.java @@ -27,8 +27,8 @@ import java.nio.charset.Charset; /** - * 十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制,一般用数字0到9和字母A到F表示(其中:A~F即10~15)。 - * 例如十进制数57,在二进制写作111001,在16进制写作39。 + * 十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制,一般用数字0到9和字母A到F表示(其中:A~F即10~15) + * 例如十进制数57,在二进制写作111001,在16进制写作39 * 像java,c这样的语言为了区分十六进制和十进制数值,会在十六进制数的前面加上 0x,比如0x20是十进制的32,而不是十进制的20 *

    * @@ -49,7 +49,7 @@ public class HexUtils { /** * 判断给定字符串是否为16进制数 - * 如果是,需要使用对应数字类型对象的decode方法解码 + * 如果是,需要使用对应数字类型对象的decode方法解码 * 例如:{@code Integer.decode}方法解码int类型的16进制数字 * * @param value 值 @@ -85,7 +85,7 @@ public static char[] encodeHex(String str, Charset charset) { * 将字节数组转换为十六进制字符数组 * * @param data byte[] - * @param toLowerCase true 传换成小写格式 , false 传换成大写格式 + * @param toLowerCase true 传换成小写格式 , false 传换成大写格式 * @return 十六进制char[] */ public static char[] encodeHex(byte[] data, boolean toLowerCase) { @@ -103,7 +103,7 @@ public static String encodeHexStr(byte[] data) { } /** - * 将字节数组转换为十六进制字符串,结果为小写 + * 将字节数组转换为十六进制字符串,结果为小写 * * @param data 被编码的字符串 * @param charset 编码 @@ -114,7 +114,7 @@ public static String encodeHexStr(String data, Charset charset) { } /** - * 将字节数组转换为十六进制字符串,结果为小写,默认编码是UTF-8 + * 将字节数组转换为十六进制字符串,结果为小写,默认编码是UTF-8 * * @param data 被编码的字符串 * @return 十六进制String @@ -127,7 +127,7 @@ public static String encodeHexStr(String data) { * 将字节数组转换为十六进制字符串 * * @param data byte[] - * @param toLowerCase true 传换成小写格式 , false 传换成大写格式 + * @param toLowerCase true 传换成小写格式 , false 传换成大写格式 * @return 十六进制String */ public static String encodeHexStr(byte[] data, boolean toLowerCase) { @@ -135,7 +135,7 @@ public static String encodeHexStr(byte[] data, boolean toLowerCase) { } /** - * 将十六进制字符数组转换为字符串,默认编码UTF-8 + * 将十六进制字符数组转换为字符串,默认编码UTF-8 * * @param hexStr 十六进制String * @return 字符串 @@ -174,7 +174,7 @@ public static String decodeHexStr(char[] hexData, Charset charset) { * * @param hexData 十六进制char[] * @return byte[] - * @throws RuntimeException 如果源十六进制字符数组是一个奇怪的长度,将抛出运行时异常 + * @throws RuntimeException 如果源十六进制字符数组是一个奇怪的长度,将抛出运行时异常 */ public static byte[] decodeHex(char[] hexData) { @@ -226,7 +226,7 @@ public static String encodeColor(Color color) { * 将{@link Color}编码为Hex形式 * * @param color {@link Color} - * @param prefix 前缀字符串,可以是#、0x等 + * @param prefix 前缀字符串,可以是#、0x等 * @return Hex字符串 * @since 3.1.9 */ @@ -254,7 +254,7 @@ public static String encodeColor(Color color, String prefix) { /** * 将Hex颜色值转为 * - * @param hexColor 16进制颜色值,可以以#开头,也可以用0x开头 + * @param hexColor 16进制颜色值,可以以#开头,也可以用0x开头 * @return {@link Color} * @since 3.1.9 */ @@ -263,14 +263,14 @@ public static Color decodeColor(String hexColor) { } /** - * 将指定int值转换为Unicode字符串形式,常用于特殊字符(例如汉字)转Unicode形式 - * 转换的字符串如果u后不足4位,则前面用0填充,例如: + * 将指定int值转换为Unicode字符串形式,常用于特殊字符(例如汉字)转Unicode形式 + * 转换的字符串如果u后不足4位,则前面用0填充,例如: * *

          * '我' =》\u4f60
          * 
    * - * @param value int值,也可以是char + * @param value int值,也可以是char * @return Unicode表现形式 */ public static String toUnicodeHex(int value) { @@ -288,8 +288,8 @@ public static String toUnicodeHex(int value) { } /** - * 将指定char值转换为Unicode字符串形式,常用于特殊字符(例如汉字)转Unicode形式 - * 转换的字符串如果u后不足4位,则前面用0填充,例如: + * 将指定char值转换为Unicode字符串形式,常用于特殊字符(例如汉字)转Unicode形式 + * 转换的字符串如果u后不足4位,则前面用0填充,例如: * *
          * '我' =》\u4f60
    @@ -343,7 +343,7 @@ private static char[] encodeHex(byte[] data, char[] toDigits) {
          * @param ch    十六进制char
          * @param index 十六进制字符在字符数组中的位置
          * @return 一个整数
    -     * @throws RuntimeException 当ch不是一个合法的十六进制字符时,抛出运行时异常
    +     * @throws RuntimeException 当ch不是一个合法的十六进制字符时,抛出运行时异常
          */
         private static int toDigit(char ch, int index) {
             int digit = Character.digit(ch, 16);
    diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/ImageUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/ImageUtils.java
    index f5912eb0bb..e292cda40d 100755
    --- a/bus-core/src/main/java/org/aoju/bus/core/utils/ImageUtils.java
    +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/ImageUtils.java
    @@ -64,7 +64,7 @@ public class ImageUtils {
          *
          * @param srcImageFile  源图像文件
          * @param destImageFile 缩放后的图像文件
    -     * @param scale         缩放比例。比例大于1时为放大,小于1大于0为缩小
    +     * @param scale         缩放比例 比例大于1时为放大,小于1大于0为缩小
          */
         public static void scale(File srcImageFile, File destImageFile, float scale) {
             scale(read(srcImageFile), destImageFile, scale);
    @@ -72,11 +72,11 @@ public static void scale(File srcImageFile, File destImageFile, float scale) {
     
         /**
          * 缩放图像(按比例缩放)
    -     * 缩放后默认为jpeg格式,此方法并不关闭流
    +     * 缩放后默认为jpeg格式,此方法并不关闭流
          *
          * @param srcStream  源图像来源流
          * @param destStream 缩放后的图像写出到的流
    -     * @param scale      缩放比例。比例大于1时为放大,小于1大于0为缩小
    +     * @param scale      缩放比例 比例大于1时为放大,小于1大于0为缩小
          * @since 3.1.9
          */
         public static void scale(InputStream srcStream, OutputStream destStream, float scale) {
    @@ -85,11 +85,11 @@ public static void scale(InputStream srcStream, OutputStream destStream, float s
     
         /**
          * 缩放图像(按比例缩放)
    -     * 缩放后默认为jpeg格式,此方法并不关闭流
    +     * 缩放后默认为jpeg格式,此方法并不关闭流
          *
          * @param srcStream  源图像来源流
          * @param destStream 缩放后的图像写出到的流
    -     * @param scale      缩放比例。比例大于1时为放大,小于1大于0为缩小
    +     * @param scale      缩放比例 比例大于1时为放大,小于1大于0为缩小
          * @since 3.1.9
          */
         public static void scale(ImageInputStream srcStream, ImageOutputStream destStream, float scale) {
    @@ -98,11 +98,11 @@ public static void scale(ImageInputStream srcStream, ImageOutputStream destStrea
     
         /**
          * 缩放图像(按比例缩放)
    -     * 缩放后默认为jpeg格式,此方法并不关闭流
    +     * 缩放后默认为jpeg格式,此方法并不关闭流
          *
          * @param srcImage 源图像来源流
          * @param destFile 缩放后的图像写出到的流
    -     * @param scale    缩放比例。比例大于1时为放大,小于1大于0为缩小
    +     * @param scale    缩放比例 比例大于1时为放大,小于1大于0为缩小
          * @throws InstrumentException IO异常
          * @since 5.2.2
          */
    @@ -112,11 +112,11 @@ public static void scale(java.awt.Image srcImage, File destFile, float scale) th
     
         /**
          * 缩放图像(按比例缩放)
    -     * 缩放后默认为jpeg格式,此方法并不关闭流
    +     * 缩放后默认为jpeg格式,此方法并不关闭流
          *
          * @param srcImage 源图像来源流
          * @param out      缩放后的图像写出到的流
    -     * @param scale    缩放比例。比例大于1时为放大,小于1大于0为缩小
    +     * @param scale    缩放比例 比例大于1时为放大,小于1大于0为缩小
          * @throws InstrumentException IO异常
          * @since 5.2.2
          */
    @@ -126,11 +126,11 @@ public static void scale(java.awt.Image srcImage, OutputStream out, float scale)
     
         /**
          * 缩放图像(按比例缩放)
    -     * 缩放后默认为jpeg格式,此方法并不关闭流
    +     * 缩放后默认为jpeg格式,此方法并不关闭流
          *
          * @param srcImage        源图像来源流
          * @param destImageStream 缩放后的图像写出到的流
    -     * @param scale           缩放比例。比例大于1时为放大,小于1大于0为缩小
    +     * @param scale           缩放比例 比例大于1时为放大,小于1大于0为缩小
          * @throws InstrumentException IO异常
          * @since 3.1.9
          */
    @@ -142,7 +142,7 @@ public static void scale(java.awt.Image srcImage, ImageOutputStream destImageStr
          * 缩放图像(按比例缩放)
          *
          * @param srcImage 源图像来源流
    -     * @param scale    缩放比例。比例大于1时为放大,小于1大于0为缩小
    +     * @param scale    缩放比例 比例大于1时为放大,小于1大于0为缩小
          * @return {@link java.awt.Image}
          * @since 3.1.9
          */
    @@ -172,7 +172,7 @@ public static java.awt.Image scale(java.awt.Image srcImage, int width, int heigh
          * @param destImageFile 缩放后的图像地址
          * @param width         缩放后的宽度
          * @param height        缩放后的高度
    -     * @param fixedColor    比例不对时补充的颜色,不补充为null
    +     * @param fixedColor    比例不对时补充的颜色,不补充为null
          * @throws InstrumentException IO异常
          */
         public static void scale(File srcImageFile, File destImageFile, int width, int height, Color fixedColor) throws InstrumentException {
    @@ -181,13 +181,13 @@ public static void scale(File srcImageFile, File destImageFile, int width, int h
     
         /**
          * 缩放图像(按高度和宽度缩放)
    -     * 缩放后默认为jpeg格式,此方法并不关闭流
    +     * 缩放后默认为jpeg格式,此方法并不关闭流
          *
          * @param srcStream  源图像流
          * @param destStream 缩放后的图像目标流
          * @param width      缩放后的宽度
          * @param height     缩放后的高度
    -     * @param fixedColor 比例不对时补充的颜色,不补充为null
    +     * @param fixedColor 比例不对时补充的颜色,不补充为null
          * @throws InstrumentException IO异常
          */
         public static void scale(InputStream srcStream, OutputStream destStream, int width, int height, Color fixedColor) throws InstrumentException {
    @@ -196,13 +196,13 @@ public static void scale(InputStream srcStream, OutputStream destStream, int wid
     
         /**
          * 缩放图像(按高度和宽度缩放)
    -     * 缩放后默认为jpeg格式,此方法并不关闭流
    +     * 缩放后默认为jpeg格式,此方法并不关闭流
          *
          * @param srcStream  源图像流
          * @param destStream 缩放后的图像目标流
          * @param width      缩放后的宽度
          * @param height     缩放后的高度
    -     * @param fixedColor 比例不对时补充的颜色,不补充为null
    +     * @param fixedColor 比例不对时补充的颜色,不补充为null
          * @throws InstrumentException IO异常
          */
         public static void scale(ImageInputStream srcStream, ImageOutputStream destStream, int width, int height, Color fixedColor) throws InstrumentException {
    @@ -211,13 +211,13 @@ public static void scale(ImageInputStream srcStream, ImageOutputStream destStrea
     
         /**
          * 缩放图像(按高度和宽度缩放)
    -     * 缩放后默认为jpeg格式,此方法并不关闭流
    +     * 缩放后默认为jpeg格式,此方法并不关闭流
          *
          * @param srcImage        源图像
          * @param destImageStream 缩放后的图像目标流
          * @param width           缩放后的宽度
          * @param height          缩放后的高度
    -     * @param fixedColor      比例不对时补充的颜色,不补充为null
    +     * @param fixedColor      比例不对时补充的颜色,不补充为null
          * @throws InstrumentException IO异常
          */
         public static void scale(java.awt.Image srcImage, ImageOutputStream destImageStream, int width, int height, Color fixedColor) throws InstrumentException {
    @@ -231,7 +231,7 @@ public static void scale(java.awt.Image srcImage, ImageOutputStream destImageStr
          * @param srcImage   源图像
          * @param width      缩放后的宽度
          * @param height     缩放后的高度
    -     * @param fixedColor 比例不对时补充的颜色,不补充为null
    +     * @param fixedColor 比例不对时补充的颜色,不补充为null
          * @return {@link java.awt.Image}
          */
         public static java.awt.Image scale(java.awt.Image srcImage, int width, int height, Color fixedColor) {
    @@ -243,7 +243,7 @@ public static java.awt.Image scale(java.awt.Image srcImage, int width, int heigh
          *
          * @param srcImgFile  源图像文件
          * @param destImgFile 切片后的图像文件
    -     * @param rectangle   矩形对象,表示矩形区域的x,y,width,height
    +     * @param rectangle   矩形对象,表示矩形区域的x,y,width,height
          * @since 3.1.9
          */
         public static void cut(File srcImgFile, File destImgFile, Rectangle rectangle) {
    @@ -251,11 +251,11 @@ public static void cut(File srcImgFile, File destImgFile, Rectangle rectangle) {
         }
     
         /**
    -     * 图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
    +     * 图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
          *
          * @param srcStream  源图像流
          * @param destStream 切片后的图像输出流
    -     * @param rectangle  矩形对象,表示矩形区域的x,y,width,height
    +     * @param rectangle  矩形对象,表示矩形区域的x,y,width,height
          * @since 3.1.9
          */
         public static void cut(InputStream srcStream, OutputStream destStream, Rectangle rectangle) {
    @@ -263,11 +263,11 @@ public static void cut(InputStream srcStream, OutputStream destStream, Rectangle
         }
     
         /**
    -     * 图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
    +     * 图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
          *
          * @param srcStream  源图像流
          * @param destStream 切片后的图像输出流
    -     * @param rectangle  矩形对象,表示矩形区域的x,y,width,height
    +     * @param rectangle  矩形对象,表示矩形区域的x,y,width,height
          * @since 3.1.9
          */
         public static void cut(ImageInputStream srcStream, ImageOutputStream destStream, Rectangle rectangle) {
    @@ -275,11 +275,11 @@ public static void cut(ImageInputStream srcStream, ImageOutputStream destStream,
         }
     
         /**
    -     * 图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
    +     * 图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
          *
          * @param srcImage  源图像
          * @param destFile  输出的文件
    -     * @param rectangle 矩形对象,表示矩形区域的x,y,width,height
    +     * @param rectangle 矩形对象,表示矩形区域的x,y,width,height
          * @throws InstrumentException IO异常
          * @since 5.2.2
          */
    @@ -288,11 +288,11 @@ public static void cut(java.awt.Image srcImage, File destFile, Rectangle rectang
         }
     
         /**
    -     * 图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
    +     * 图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
          *
          * @param srcImage  源图像
          * @param out       切片后的图像输出流
    -     * @param rectangle 矩形对象,表示矩形区域的x,y,width,height
    +     * @param rectangle 矩形对象,表示矩形区域的x,y,width,height
          * @throws InstrumentException IO异常
          * @since 3.1.9
          */
    @@ -301,11 +301,11 @@ public static void cut(java.awt.Image srcImage, OutputStream out, Rectangle rect
         }
     
         /**
    -     * 图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
    +     * 图像切割(按指定起点坐标和宽高切割),此方法并不关闭流
          *
          * @param srcImage        源图像
          * @param destImageStream 切片后的图像输出流
    -     * @param rectangle       矩形对象,表示矩形区域的x,y,width,height
    +     * @param rectangle       矩形对象,表示矩形区域的x,y,width,height
          * @throws InstrumentException IO异常
          * @since 3.1.9
          */
    @@ -317,7 +317,7 @@ public static void cut(java.awt.Image srcImage, ImageOutputStream destImageStrea
          * 图像切割(按指定起点坐标和宽高切割)
          *
          * @param srcImage  源图像
    -     * @param rectangle 矩形对象,表示矩形区域的x,y,width,height
    +     * @param rectangle 矩形对象,表示矩形区域的x,y,width,height
          * @return {@link BufferedImage}
          * @since 3.1.9
          */
    @@ -326,7 +326,7 @@ public static java.awt.Image cut(java.awt.Image srcImage, Rectangle rectangle) {
         }
     
         /**
    -     * 图像切割(按指定起点坐标和宽高切割),填充满整个图片(直径取长宽最小值)
    +     * 图像切割(按指定起点坐标和宽高切割),填充满整个图片(直径取长宽最小值)
          *
          * @param srcImage 源图像
          * @param x        原图的x坐标起始位置
    @@ -343,7 +343,7 @@ public static java.awt.Image cut(java.awt.Image srcImage, int x, int y) {
          * @param srcImage 源图像
          * @param x        原图的x坐标起始位置
          * @param y        原图的y坐标起始位置
    -     * @param radius   半径,小于0表示填充满整个图片(直径取长宽最小值)
    +     * @param radius   半径,小于0表示填充满整个图片(直径取长宽最小值)
          * @return {@link java.awt.Image}
          */
         public static java.awt.Image cut(java.awt.Image srcImage, int x, int y, int radius) {
    @@ -355,8 +355,8 @@ public static java.awt.Image cut(java.awt.Image srcImage, int x, int y, int radi
          *
          * @param srcImageFile 源图像
          * @param descDir      切片目标文件夹
    -     * @param destWidth    目标切片宽度。默认200
    -     * @param destHeight   目标切片高度。默认150
    +     * @param destWidth    目标切片宽度 默认200
    +     * @param destHeight   目标切片高度 默认150
          */
         public static void slice(File srcImageFile, File descDir, int destWidth, int destHeight) {
             slice(read(srcImageFile), descDir, destWidth, destHeight);
    @@ -367,8 +367,8 @@ public static void slice(File srcImageFile, File descDir, int destWidth, int des
          *
          * @param srcImage   源图像
          * @param descDir    切片目标文件夹
    -     * @param destWidth  目标切片宽度。默认200
    -     * @param destHeight 目标切片高度。默认150
    +     * @param destWidth  目标切片宽度 默认200
    +     * @param destHeight 目标切片高度 默认150
          */
         public static void slice(java.awt.Image srcImage, File descDir, int destWidth, int destHeight) {
             if (destWidth <= 0) {
    @@ -417,8 +417,8 @@ public static void slice(java.awt.Image srcImage, File descDir, int destWidth, i
          *
          * @param srcImageFile 源图像文件
          * @param destDir      切片目标文件夹
    -     * @param rows         目标切片行数。默认2,必须是范围 [1, 20] 之内
    -     * @param cols         目标切片列数。默认2,必须是范围 [1, 20] 之内
    +     * @param rows         目标切片行数 默认2,必须是范围 [1, 20] 之内
    +     * @param cols         目标切片列数 默认2,必须是范围 [1, 20] 之内
          */
         public static void sliceByRowsAndCols(File srcImageFile, File destDir, int rows, int cols) {
             try {
    @@ -433,8 +433,8 @@ public static void sliceByRowsAndCols(File srcImageFile, File destDir, int rows,
          *
          * @param srcImage 源图像
          * @param destDir  切片目标文件夹
    -     * @param rows     目标切片行数。默认2,必须是范围 [1, 20] 之内
    -     * @param cols     目标切片列数。默认2,必须是范围 [1, 20] 之内
    +     * @param rows     目标切片行数 默认2,必须是范围 [1, 20] 之内
    +     * @param cols     目标切片列数 默认2,必须是范围 [1, 20] 之内
          */
         public static void sliceByRowsAndCols(java.awt.Image srcImage, File destDir, int rows, int cols) {
             if (false == destDir.exists()) {
    @@ -612,7 +612,7 @@ public static java.awt.Image gray(java.awt.Image srcImage) {
         }
     
         /**
    -     * 彩色转为黑白二值化图片,根据目标文件扩展名确定转换后的格式
    +     * 彩色转为黑白二值化图片,根据目标文件扩展名确定转换后的格式
          *
          * @param srcImageFile  源图像地址
          * @param destImageFile 目标图像地址
    @@ -646,7 +646,7 @@ public static void binary(ImageInputStream srcStream, ImageOutputStream destStre
         }
     
         /**
    -     * 彩色转为黑白二值化图片,根据目标文件扩展名确定转换后的格式
    +     * 彩色转为黑白二值化图片,根据目标文件扩展名确定转换后的格式
          *
          * @param srcImage 源图像流
          * @param outFile  目标文件
    @@ -657,7 +657,7 @@ public static void binary(java.awt.Image srcImage, File outFile) {
     
         /**
          * 彩色转为黑白二值化图片
    -     * 此方法并不关闭流,输出JPG格式
    +     * 此方法并不关闭流,输出JPG格式
          *
          * @param srcImage  源图像流
          * @param out       目标图像流
    @@ -669,7 +669,7 @@ public static void binary(java.awt.Image srcImage, OutputStream out, String imag
     
         /**
          * 彩色转为黑白二值化图片
    -     * 此方法并不关闭流,输出JPG格式
    +     * 此方法并不关闭流,输出JPG格式
          *
          * @param srcImage        源图像流
          * @param destImageStream 目标图像流
    @@ -697,9 +697,9 @@ public static java.awt.Image binary(java.awt.Image srcImage) {
          * @param destFile  目标图像文件
          * @param pressText 水印文字
          * @param color     水印的字体颜色
    -     * @param font      {@link Font} 字体相关信息,如果默认则为{@code null}
    -     * @param x         修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y         修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param font      {@link Font} 字体相关信息,如果默认则为{@code null}
    +     * @param x         修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y         修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha     透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          */
         public static void pressText(File imageFile, File destFile, String pressText, Color color, Font font, int x, int y, float alpha) {
    @@ -714,9 +714,9 @@ public static void pressText(File imageFile, File destFile, String pressText, Co
          * @param destStream 目标图像流
          * @param pressText  水印文字
          * @param color      水印的字体颜色
    -     * @param font       {@link Font} 字体相关信息,如果默认则为{@code null}
    -     * @param x          修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y          修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param font       {@link Font} 字体相关信息,如果默认则为{@code null}
    +     * @param x          修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y          修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha      透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          */
         public static void pressText(InputStream srcStream, OutputStream destStream, String pressText, Color color, Font font, int x, int y, float alpha) {
    @@ -731,9 +731,9 @@ public static void pressText(InputStream srcStream, OutputStream destStream, Str
          * @param destStream 目标图像流
          * @param pressText  水印文字
          * @param color      水印的字体颜色
    -     * @param font       {@link Font} 字体相关信息,如果默认则为{@code null}
    -     * @param x          修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y          修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param font       {@link Font} 字体相关信息,如果默认则为{@code null}
    +     * @param x          修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y          修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha      透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          */
         public static void pressText(ImageInputStream srcStream, ImageOutputStream destStream, String pressText, Color color, Font font, int x, int y, float alpha) {
    @@ -748,9 +748,9 @@ public static void pressText(ImageInputStream srcStream, ImageOutputStream destS
          * @param destFile  目标流
          * @param pressText 水印文字
          * @param color     水印的字体颜色
    -     * @param font      {@link Font} 字体相关信息,如果默认则为{@code null}
    -     * @param x         修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y         修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param font      {@link Font} 字体相关信息,如果默认则为{@code null}
    +     * @param x         修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y         修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha     透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          * @throws InstrumentException IO异常
          * @since 5.2.2
    @@ -767,9 +767,9 @@ public static void pressText(java.awt.Image srcImage, File destFile, String pres
          * @param to        目标流
          * @param pressText 水印文字
          * @param color     水印的字体颜色
    -     * @param font      {@link Font} 字体相关信息,如果默认则为{@code null}
    -     * @param x         修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y         修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param font      {@link Font} 字体相关信息,如果默认则为{@code null}
    +     * @param x         修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y         修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha     透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          * @throws InstrumentException IO异常
          * @since 5.2.2
    @@ -786,9 +786,9 @@ public static void pressText(java.awt.Image srcImage, OutputStream to, String pr
          * @param destImageStream 目标图像流
          * @param pressText       水印文字
          * @param color           水印的字体颜色
    -     * @param font            {@link Font} 字体相关信息,如果默认则为{@code null}
    -     * @param x               修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y               修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param font            {@link Font} 字体相关信息,如果默认则为{@code null}
    +     * @param x               修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y               修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha           透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          * @throws InstrumentException IO异常
          */
    @@ -803,9 +803,9 @@ public static void pressText(java.awt.Image srcImage, ImageOutputStream destImag
          * @param srcImage  源图像
          * @param pressText 水印文字
          * @param color     水印的字体颜色
    -     * @param font      {@link Font} 字体相关信息,如果默认则为{@code null}
    -     * @param x         修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y         修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param font      {@link Font} 字体相关信息,如果默认则为{@code null}
    +     * @param x         修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y         修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha     透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          * @return 处理后的图像
          * @since 5.2.2
    @@ -820,8 +820,8 @@ public static java.awt.Image pressText(java.awt.Image srcImage, String pressText
          * @param srcImageFile  源图像文件
          * @param destImageFile 目标图像文件
          * @param pressImage    水印图片
    -     * @param x             修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y             修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param x             修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y             修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha         透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          */
         public static void pressImage(File srcImageFile, File destImageFile, java.awt.Image pressImage, int x, int y, float alpha) {
    @@ -834,9 +834,9 @@ public static void pressImage(File srcImageFile, File destImageFile, java.awt.Im
          *
          * @param srcStream  源图像流
          * @param destStream 目标图像流
    -     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    -     * @param x          修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y          修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    +     * @param x          修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y          修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha      透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          */
         public static void pressImage(InputStream srcStream, OutputStream destStream, java.awt.Image pressImage, int x, int y, float alpha) {
    @@ -849,9 +849,9 @@ public static void pressImage(InputStream srcStream, OutputStream destStream, ja
          *
          * @param srcStream  源图像流
          * @param destStream 目标图像流
    -     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    -     * @param x          修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y          修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    +     * @param x          修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y          修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha      透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          * @throws InstrumentException IO异常
          */
    @@ -865,9 +865,9 @@ public static void pressImage(ImageInputStream srcStream, ImageOutputStream dest
          *
          * @param srcImage   源图像流
          * @param outFile    写出文件
    -     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    -     * @param x          修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y          修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    +     * @param x          修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y          修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha      透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          * @throws InstrumentException IO异常
          * @since 5.2.2
    @@ -882,9 +882,9 @@ public static void pressImage(java.awt.Image srcImage, File outFile, java.awt.Im
          *
          * @param srcImage   源图像流
          * @param out        目标图像流
    -     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    -     * @param x          修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y          修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    +     * @param x          修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y          修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha      透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          * @throws InstrumentException IO异常
          * @since 5.2.2
    @@ -899,9 +899,9 @@ public static void pressImage(java.awt.Image srcImage, OutputStream out, java.aw
          *
          * @param srcImage        源图像流
          * @param destImageStream 目标图像流
    -     * @param pressImage      水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    -     * @param x               修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y               修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param pressImage      水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    +     * @param x               修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y               修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha           透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          * @throws InstrumentException IO异常
          */
    @@ -914,9 +914,9 @@ public static void pressImage(java.awt.Image srcImage, ImageOutputStream destIma
          * 此方法并不关闭流
          *
          * @param srcImage   源图像流
    -     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    -     * @param x          修正值。 默认在中间,偏移量相对于中间偏移
    -     * @param y          修正值。 默认在中间,偏移量相对于中间偏移
    +     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    +     * @param x          修正值  默认在中间,偏移量相对于中间偏移
    +     * @param y          修正值  默认在中间,偏移量相对于中间偏移
          * @param alpha      透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          * @return 结果图片
          */
    @@ -929,8 +929,8 @@ public static java.awt.Image pressImage(java.awt.Image srcImage, java.awt.Image
          * 此方法并不关闭流
          *
          * @param srcImage   源图像流
    -     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    -     * @param rectangle  矩形对象,表示矩形区域的x,y,width,height,x,y从背景图片中心计算
    +     * @param pressImage 水印图片,可以使用{@link ImageIO#read(File)}方法读取文件
    +     * @param rectangle  矩形对象,表示矩形区域的x,y,width,height,x,y从背景图片中心计算
          * @param alpha      透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
          * @return 结果图片
          */
    @@ -982,7 +982,7 @@ public static void rotate(java.awt.Image image, int degree, OutputStream out) th
     
         /**
          * 旋转图片为指定角度
    -     * 此方法不会关闭输出流,输出格式为JPG
    +     * 此方法不会关闭输出流,输出格式为JPG
          *
          * @param image  目标图像
          * @param degree 旋转角度
    @@ -1044,7 +1044,7 @@ public static void flip(java.awt.Image image, OutputStream out) throws Instrumen
         }
     
         /**
    -     * 水平翻转图像,写出格式为JPG
    +     * 水平翻转图像,写出格式为JPG
          *
          * @param image 图像
          * @param out   输出
    @@ -1067,10 +1067,10 @@ public static java.awt.Image flip(java.awt.Image image) {
         }
     
         /**
    -     * 压缩图像,输出图像只支持jpg文件
    +     * 压缩图像,输出图像只支持jpg文件
          *
          * @param imageFile 图像文件
    -     * @param outFile   输出文件,只支持jpg文件
    +     * @param outFile   输出文件,只支持jpg文件
          * @param quality   质量
          * @throws InstrumentException IO异常
          */
    @@ -1080,7 +1080,7 @@ public static void compress(File imageFile, File outFile, float quality) throws
     
         /**
          * {@link java.awt.Image} 转 {@link RenderedImage}
    -     * 首先尝试强转,否则新建一个{@link BufferedImage}后重新绘制
    +     * 首先尝试强转,否则新建一个{@link BufferedImage}后重新绘制
          *
          * @param image {@link java.awt.Image}
          * @return {@link BufferedImage}
    @@ -1095,7 +1095,7 @@ public static RenderedImage toRenderedImage(java.awt.Image image) {
     
         /**
          * {@link java.awt.Image} 转 {@link BufferedImage}
    -     * 首先尝试强转,否则新建一个{@link BufferedImage}后重新绘制
    +     * 首先尝试强转,否则新建一个{@link BufferedImage}后重新绘制
          *
          * @param image {@link java.awt.Image}
          * @return {@link BufferedImage}
    @@ -1110,7 +1110,7 @@ public static BufferedImage toBufferedImage(java.awt.Image image) {
     
         /**
          * {@link java.awt.Image} 转 {@link BufferedImage}
    -     * 如果源图片的RGB模式与目标模式一致,则直接转换,否则重新绘制
    +     * 如果源图片的RGB模式与目标模式一致,则直接转换,否则重新绘制
          *
          * @param image     {@link java.awt.Image}
          * @param imageType 目标图片类型
    @@ -1119,7 +1119,7 @@ public static BufferedImage toBufferedImage(java.awt.Image image) {
         public static BufferedImage toBufferedImage(java.awt.Image image, String imageType) {
             BufferedImage bufferedImage;
             if (false == imageType.equalsIgnoreCase(FileType.IMAGE_TYPE_PNG)) {
    -            // 当目标为非PNG类图片时,源图片统一转换为RGB格式
    +            // 当目标为非PNG类图片时,源图片统一转换为RGB格式
                 if (image instanceof BufferedImage) {
                     bufferedImage = (BufferedImage) image;
                     if (BufferedImage.TYPE_INT_RGB != bufferedImage.getType()) {
    @@ -1138,7 +1138,7 @@ public static BufferedImage toBufferedImage(java.awt.Image image, String imageTy
          * 将已有Image复制新的一份出来
          *
          * @param image     {@link java.awt.Image}
    -     * @param imageType 目标图片类型,{@link BufferedImage}中的常量,例如黑白等
    +     * @param imageType 目标图片类型,{@link BufferedImage}中的常量,例如黑白等
          * @return {@link BufferedImage}
          * @see BufferedImage#TYPE_INT_RGB
          * @see BufferedImage#TYPE_INT_ARGB
    @@ -1162,8 +1162,8 @@ public static BufferedImage copyImage(java.awt.Image image, int imageType) {
          * 将已有Image复制新的一份出来
          *
          * @param image           {@link java.awt.Image}
    -     * @param imageType       目标图片类型,{@link BufferedImage}中的常量,例如黑白等
    -     * @param backgroundColor 背景色,{@code null} 表示默认背景色(黑色或者透明)
    +     * @param imageType       目标图片类型,{@link BufferedImage}中的常量,例如黑白等
    +     * @param backgroundColor 背景色,{@code null} 表示默认背景色(黑色或者透明)
          * @return {@link BufferedImage}
          * @see BufferedImage#TYPE_INT_RGB
          * @see BufferedImage#TYPE_INT_ARGB
    @@ -1254,7 +1254,7 @@ public static void createImage(String str, Font font, Color backgroundColor, Col
     
         /**
          * 根据文件创建字体
    -     * 首先尝试创建{@link Font#TRUETYPE_FONT}字体,此类字体无效则创建{@link Font#TYPE1_FONT}
    +     * 首先尝试创建{@link Font#TRUETYPE_FONT}字体,此类字体无效则创建{@link Font#TYPE1_FONT}
          *
          * @param fontFile 字体文件
          * @return {@link Font}
    @@ -1277,7 +1277,7 @@ public static Font createFont(File fontFile) {
     
         /**
          * 根据文件创建字体
    -     * 首先尝试创建{@link Font#TRUETYPE_FONT}字体,此类字体无效则创建{@link Font#TYPE1_FONT}
    +     * 首先尝试创建{@link Font#TRUETYPE_FONT}字体,此类字体无效则创建{@link Font#TYPE1_FONT}
          *
          * @param fontStream 字体流
          * @return {@link Font}
    @@ -1374,7 +1374,7 @@ public static void write(java.awt.Image image, String imageType, OutputStream ou
          * @param image           {@link java.awt.Image}
          * @param imageType       图片类型(图片扩展名)
          * @param destImageStream 写出到的目标流
    -     * @return 是否成功写出,如果返回false表示未找到合适的Writer
    +     * @return 是否成功写出, 如果返回false表示未找到合适的Writer
          * @throws InstrumentException IO异常
          * @since 3.1.9
          */
    @@ -1388,8 +1388,8 @@ public static boolean write(java.awt.Image image, String imageType, ImageOutputS
          * @param image           {@link java.awt.Image}
          * @param imageType       图片类型(图片扩展名)
          * @param destImageStream 写出到的目标流
    -     * @param quality         质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩
    -     * @return 是否成功写出,如果返回false表示未找到合适的Writer
    +     * @param quality         质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩
    +     * @return 是否成功写出, 如果返回false表示未找到合适的Writer
          * @throws InstrumentException IO异常
          */
         public static boolean write(java.awt.Image image, String imageType, ImageOutputStream destImageStream, float quality) throws InstrumentException {
    @@ -1425,7 +1425,7 @@ public static void write(java.awt.Image image, File targetFile) throws Instrumen
          * @param image   图片
          * @param writer  {@link ImageWriter}
          * @param output  输出的Image流{@link ImageOutputStream}
    -     * @param quality 质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩
    +     * @param quality 质量,数字为0~1(不包括0和1)表示质量压缩比,除此数字外设置表示不压缩
          * @return 是否成功写出
          */
         public static boolean write(java.awt.Image image, ImageWriter writer, ImageOutputStream output, float quality) {
    @@ -1465,7 +1465,7 @@ public static boolean write(java.awt.Image image, ImageWriter writer, ImageOutpu
         /**
          * 获得{@link ImageReader}
          *
    -     * @param type 图片文件类型,例如 "jpeg" 或 "tiff"
    +     * @param type 图片文件类型,例如 "jpeg" 或 "tiff"
          * @return {@link ImageReader}
          */
         public static ImageReader getReader(String type) {
    @@ -1477,7 +1477,7 @@ public static ImageReader getReader(String type) {
         }
     
         /**
    -     * 从文件中读取图片,请使用绝对路径,使用相对路径会相对于ClassPath
    +     * 从文件中读取图片,请使用绝对路径,使用相对路径会相对于ClassPath
          *
          * @param imageFilePath 图片文件路径
          * @return 图片
    @@ -1605,10 +1605,10 @@ public static ImageInputStream getImageInputStream(InputStream in) throws Instru
         }
     
         /**
    -     * 根据给定的Image对象和格式获取对应的{@link ImageWriter},如果未找到合适的Writer,返回null
    +     * 根据给定的Image对象和格式获取对应的{@link ImageWriter},如果未找到合适的Writer,返回null
          *
          * @param image      {@link java.awt.Image}
    -     * @param formatName 图片格式,例如"jpg"、"png"
    +     * @param formatName 图片格式,例如"jpg"、"png"
          * @return {@link ImageWriter}
          */
         public static ImageWriter getWriter(java.awt.Image image, String formatName) {
    @@ -1618,9 +1618,9 @@ public static ImageWriter getWriter(java.awt.Image image, String formatName) {
         }
     
         /**
    -     * 根据给定的图片格式或者扩展名获取{@link ImageWriter},如果未找到合适的Writer,返回null
    +     * 根据给定的图片格式或者扩展名获取{@link ImageWriter},如果未找到合适的Writer,返回null
          *
    -     * @param formatName 图片格式或扩展名,例如"jpg"、"png"
    +     * @param formatName 图片格式或扩展名,例如"jpg"、"png"
          * @return {@link ImageWriter}
          */
         public static ImageWriter getWriter(String formatName) {
    @@ -1640,10 +1640,10 @@ public static ImageWriter getWriter(String formatName) {
         }
     
         /**
    -     * Color对象转16进制表示,例如#fcf6d6
    +     * Color对象转16进制表示,例如#fcf6d6
          *
          * @param color {@link Color}
    -     * @return 16进制的颜色值,例如#fcf6d6
    +     * @return 16进制的颜色值, 例如#fcf6d6
          */
         public static String toHex(Color color) {
             String R = Integer.toHexString(color.getRed());
    @@ -1656,9 +1656,9 @@ public static String toHex(Color color) {
         }
     
         /**
    -     * 16进制的颜色值转换为Color对象,例如#fcf6d6
    +     * 16进制的颜色值转换为Color对象,例如#fcf6d6
          *
    -     * @param hex 16进制的颜色值,例如#fcf6d6
    +     * @param hex 16进制的颜色值,例如#fcf6d6
          * @return {@link Color}
          */
         public static Color hexToColor(String hex) {
    @@ -1676,17 +1676,17 @@ public static Color getColor(int rgb) {
         }
     
         /**
    -     * 将颜色值转换成具体的颜色类型 汇集了常用的颜色集,支持以下几种形式:
    +     * 将颜色值转换成具体的颜色类型 汇集了常用的颜色集,支持以下几种形式:
          *
          * 
          * 1. 颜色的英文名(大小写皆可)
    -     * 2. 16进制表示,例如:#fcf6d6或者$fcf6d6
    -     * 3. RGB形式,例如:13,148,252
    +     * 2. 16进制表示,例如:#fcf6d6或者$fcf6d6
    +     * 3. RGB形式,例如:13,148,252
          * 
    *

    * 方法来自:com.lnwazg.kit * - * @param colorName 颜色的英文名,16进制表示或RGB表示 + * @param colorName 颜色的英文名,16进制表示或RGB表示 * @return {@link Color} */ public static Color getColor(String colorName) { @@ -1730,7 +1730,7 @@ public static Color getColor(String colorName) { } else if (StringUtils.startWith(colorName, '#')) { return hexToColor(colorName); } else if (StringUtils.startWith(colorName, '$')) { - // 由于#在URL传输中无法传输,因此用$代替# + // 由于#在URL传输中无法传输,因此用$代替# return hexToColor("#" + colorName.substring(1)); } else { // rgb值 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/IoUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/IoUtils.java index ac9dcae54d..7454e9c57e 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/IoUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/IoUtils.java @@ -54,7 +54,7 @@ /** * IO工具类 - * IO工具类只是辅助流的读写,并不负责关闭流。原因是流可能被多次读写,读写关闭后容易造成问题。 + * IO工具类只是辅助流的读写,并不负责关闭流 原因是流可能被多次读写,读写关闭后容易造成问题 * * @author Kimi Liu * @version 5.2.2 @@ -118,8 +118,8 @@ public static long reverseBytesLong(long v) { /** * 即使被声明也不允许直接抛出 - * 这是一种很糟糕的做饭,很容易遭到攻击 - * 清理后捕获并重新抛出异常。参见Java Puzzlers #43。 + * 这是一种很糟糕的做饭,很容易遭到攻击 + * 清理后捕获并重新抛出异常 参见Java Puzzlers #43 * * @param t 异常 */ @@ -200,7 +200,7 @@ public static long copy(Reader reader, Writer writer, int bufferSize, StreamProg } /** - * 拷贝流,使用默认Buffer大小 + * 拷贝流,使用默认Buffer大小 * * @param in 输入流 * @param out 输出流 @@ -280,7 +280,7 @@ public static long copyByNIO(InputStream in, OutputStream out, int bufferSize, S } /** - * 拷贝文件流,使用NIO + * 拷贝文件流,使用NIO * * @param in 输入 * @param out 输出 @@ -302,11 +302,11 @@ public static long copy(FileInputStream in, FileOutputStream out) throws Instrum } /** - * 拷贝流,使用NIO,不会关闭流 + * 拷贝流,使用NIO,不会关闭流 * * @param in {@link ReadableByteChannel} * @param out {@link WritableByteChannel} - * @param bufferSize 缓冲大小,如果小于等于0,使用默认 + * @param bufferSize 缓冲大小,如果小于等于0,使用默认 * @param streamProgress {@link StreamProgress}进度处理器 * @return 拷贝的字节数 * @throws InstrumentException 异常 @@ -374,9 +374,9 @@ public static BufferedReader getReader(InputStream in, Charset charset) { /** * 获得{@link BufferedReader} - * 如果是{@link BufferedReader}强转返回,否则新建。如果提供的Reader为null返回null + * 如果是{@link BufferedReader}强转返回,否则新建 如果提供的Reader为null返回null * - * @param reader 普通Reader,如果为null返回null + * @param reader 普通Reader,如果为null返回null * @return {@link BufferedReader} or null * @since 3.1.9 */ @@ -390,7 +390,7 @@ public static BufferedReader getReader(Reader reader) { /** * 获得{@link PushbackReader} - * 如果是{@link PushbackReader}强转返回,否则新建 + * 如果是{@link PushbackReader}强转返回,否则新建 * * @param reader 普通Reader * @param pushBackSize 推后的byte数 @@ -445,9 +445,9 @@ public static String read(InputStream in, String charsetName) throws InstrumentE } /** - * 从流中读取内容,读取完毕后并不关闭流 + * 从流中读取内容,读取完毕后并不关闭流 * - * @param in 输入流,读取完毕后并不关闭流 + * @param in 输入流,读取完毕后并不关闭流 * @param charset 字符集 * @return 内容 * @throws InstrumentException 异常 @@ -458,7 +458,7 @@ public static String read(InputStream in, Charset charset) throws InstrumentExce } /** - * 从流中读取内容,读到输出流中 + * 从流中读取内容,读到输出流中 * * @param in 输入流 * @return 输出流 @@ -471,7 +471,7 @@ public static FastByteArray read(InputStream in) throws InstrumentException { } /** - * 从Reader中读取String,读取完毕后并不关闭Reader + * 从Reader中读取String,读取完毕后并不关闭Reader * * @param reader Reader * @return String @@ -502,7 +502,7 @@ public static String readUtf8(FileChannel fileChannel) throws InstrumentExceptio } /** - * 从FileChannel中读取内容,读取完毕后并不关闭Channel + * 从FileChannel中读取内容,读取完毕后并不关闭Channel * * @param fileChannel 文件管道 * @param charsetName 字符集 @@ -545,10 +545,10 @@ public static byte[] readBytes(InputStream in) throws InstrumentException { } /** - * 读取指定长度的byte数组,不关闭流 + * 读取指定长度的byte数组,不关闭流 * - * @param in {@link InputStream},为null返回null - * @param length 长度,小于等于0返回空byte数组 + * @param in {@link InputStream},为null返回null + * @param length 长度,小于等于0返回空byte数组 * @return bytes * @throws InstrumentException 异常 */ @@ -581,7 +581,7 @@ public static byte[] readBytes(InputStream in, int length) throws InstrumentExce * * @param in {@link InputStream} * @param length 长度 - * @param toLowerCase true 传换成小写格式 , false 传换成大写格式 + * @param toLowerCase true 传换成小写格式 , false 传换成大写格式 * @return 16进制字符串 * @throws InstrumentException 异常 */ @@ -590,7 +590,7 @@ public static String readHex(InputStream in, int length, boolean toLowerCase) th } /** - * 从流中读取前28个byte并转换为16进制,字母部分使用大写 + * 从流中读取前28个byte并转换为16进制,字母部分使用大写 * * @param in {@link InputStream} * @return 16进制字符串 @@ -601,7 +601,7 @@ public static String readHex28Upper(InputStream in) throws InstrumentException { } /** - * 从流中读取前28个byte并转换为16进制,字母部分使用小写 + * 从流中读取前28个byte并转换为16进制,字母部分使用小写 * * @param in {@link InputStream} * @return 16进制字符串 @@ -612,7 +612,7 @@ public static String readHex28Lower(InputStream in) throws InstrumentException { } /** - * 从流中读取内容,读到输出流中 + * 从流中读取内容,读到输出流中 * * @param 读取对象的类型 * @param in 输入流 @@ -636,7 +636,7 @@ public static T readObj(InputStream in) throws InstrumentException { } /** - * 从流中读取内容,使用UTF-8编码 + * 从流中读取内容,使用UTF-8编码 * * @param 集合类型 * @param in 输入流 @@ -696,10 +696,10 @@ public void handle(String line) { } /** - * 按行读取UTF-8编码数据,针对每行的数据做处理 + * 按行读取UTF-8编码数据,针对每行的数据做处理 * * @param in {@link InputStream} - * @param lineHandler 行处理接口,实现handle方法用于编辑一行的数据后入到指定地方 + * @param lineHandler 行处理接口,实现handle方法用于编辑一行的数据后入到指定地方 * @throws InstrumentException 异常 * @since 3.1.1 */ @@ -708,11 +708,11 @@ public static void readUtf8Lines(InputStream in, LineHandler lineHandler) throws } /** - * 按行读取数据,针对每行的数据做处理 + * 按行读取数据,针对每行的数据做处理 * * @param in {@link InputStream} * @param charset {@link Charset}编码 - * @param lineHandler 行处理接口,实现handle方法用于编辑一行的数据后入到指定地方 + * @param lineHandler 行处理接口,实现handle方法用于编辑一行的数据后入到指定地方 * @throws InstrumentException 异常 * @since 3.1.9 */ @@ -721,11 +721,11 @@ public static void readLines(InputStream in, Charset charset, LineHandler lineHa } /** - * 按行读取数据,针对每行的数据做处理 - * {@link Reader}自带编码定义,因此读取数据的编码跟随其编码。 + * 按行读取数据,针对每行的数据做处理 + * {@link Reader}自带编码定义,因此读取数据的编码跟随其编码 * * @param reader {@link Reader} - * @param lineHandler 行处理接口,实现handle方法用于编辑一行的数据后入到指定地方 + * @param lineHandler 行处理接口,实现handle方法用于编辑一行的数据后入到指定地方 * @throws InstrumentException 异常 */ public static void readLines(Reader reader, LineHandler lineHandler) throws InstrumentException { @@ -818,7 +818,7 @@ public static BufferedOutputStream toBuffered(OutputStream out) { /** * 将{@link InputStream}转换为支持mark标记的流 - * 若原流支持mark标记,则返回原流,否则使用{@link BufferedInputStream} 包装之 + * 若原流支持mark标记,则返回原流,否则使用{@link BufferedInputStream} 包装之 * * @param in 流 * @return {@link InputStream} @@ -835,7 +835,7 @@ public static InputStream toMarkSupportStream(InputStream in) { /** * 转换为{@link PushbackInputStream} - * 如果传入的输入流已经是{@link PushbackInputStream},强转返回,否则新建一个 + * 如果传入的输入流已经是{@link PushbackInputStream},强转返回,否则新建一个 * * @param in {@link InputStream} * @param pushBackSize 推后的byte数 @@ -867,11 +867,11 @@ public static void write(OutputStream out, boolean isCloseOut, byte[] content) t } /** - * 将多部分内容写到流中,自动转换为UTF-8字符串 + * 将多部分内容写到流中,自动转换为UTF-8字符串 * * @param out 输出流 * @param isCloseOut 写入完毕是否关闭输出流 - * @param contents 写入的内容,调用toString()方法,不包括不会自动换行 + * @param contents 写入的内容,调用toString()方法,不包括不会自动换行 * @throws InstrumentException 异常 * @since 3.1.1 */ @@ -880,12 +880,12 @@ public static void writeUtf8(OutputStream out, boolean isCloseOut, Object... con } /** - * 将多部分内容写到流中,自动转换为字符串 + * 将多部分内容写到流中,自动转换为字符串 * * @param out 输出流 * @param charsetName 写出的内容的字符集 * @param isCloseOut 写入完毕是否关闭输出流 - * @param contents 写入的内容,调用toString()方法,不包括不会自动换行 + * @param contents 写入的内容,调用toString()方法,不包括不会自动换行 * @throws InstrumentException 异常 */ public static void write(OutputStream out, String charsetName, boolean isCloseOut, Object... contents) throws InstrumentException { @@ -893,12 +893,12 @@ public static void write(OutputStream out, String charsetName, boolean isCloseOu } /** - * 将多部分内容写到流中,自动转换为字符串 + * 将多部分内容写到流中,自动转换为字符串 * * @param out 输出流 * @param charset 写出的内容的字符集 * @param isCloseOut 写入完毕是否关闭输出流 - * @param contents 写入的内容,调用toString()方法,不包括不会自动换行 + * @param contents 写入的内容,调用toString()方法,不包括不会自动换行 * @throws InstrumentException 异常 * @since 3.1.9 */ @@ -1000,7 +1000,7 @@ public static void close(Socket sock) { * * @param input1 第一个流 * @param input2 第二个流 - * @return 两个流的内容一致返回true,否则false + * @return 两个流的内容一致返回true, 否则false * @throws InstrumentException 异常 */ public static boolean contentEquals(InputStream input1, InputStream input2) throws InstrumentException { @@ -1034,7 +1034,7 @@ public static boolean contentEquals(InputStream input1, InputStream input2) thro * * @param input1 第一个reader * @param input2 第二个reader - * @return 两个流的内容一致返回true,否则false + * @return 两个流的内容一致返回true, 否则false * @throws InstrumentException 异常 */ public static boolean contentEquals(Reader input1, Reader input2) throws InstrumentException { @@ -1059,12 +1059,12 @@ public static boolean contentEquals(Reader input1, Reader input2) throws Instrum } /** - * 对比两个流内容是否相同,忽略EOL字符 + * 对比两个流内容是否相同,忽略EOL字符 * 内部会转换流为 {@link BufferedInputStream} * * @param input1 第一个流 * @param input2 第二个流 - * @return 两个流的内容一致返回true,否则false + * @return 两个流的内容一致返回true, 否则false * @throws InstrumentException 异常 */ public static boolean contentEqualsIgnoreEOL(Reader input1, Reader input2) throws InstrumentException { @@ -1085,9 +1085,9 @@ public static boolean contentEqualsIgnoreEOL(Reader input1, Reader input2) throw } /** - * 计算流CRC32校验码,计算后关闭流 + * 计算流CRC32校验码,计算后关闭流 * - * @param in 文件,不能为目录 + * @param in 文件,不能为目录 * @return CRC32值 * @throws InstrumentException 异常 */ @@ -1096,7 +1096,7 @@ public static long checksumCRC32(InputStream in) throws InstrumentException { } /** - * 计算流的校验码,计算后关闭流 + * 计算流的校验码,计算后关闭流 * * @param in 流 * @param checksum {@link Checksum} diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/IterUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/IterUtils.java index 1999be82d4..3638fd9fcc 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/IterUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/IterUtils.java @@ -81,7 +81,7 @@ public static boolean isNotEmpty(Iterator Iterator) { /** * 是否包含{@code null}元素 * - * @param iter 被检查的{@link Iterable}对象,如果为{@code null} 返回false + * @param iter 被检查的{@link Iterable}对象,如果为{@code null} 返回false * @return 是否包含{@code null}元素 */ public static boolean hasNull(Iterable iter) { @@ -91,7 +91,7 @@ public static boolean hasNull(Iterable iter) { /** * 是否包含{@code null}元素 * - * @param iter 被检查的{@link Iterator}对象,如果为{@code null} 返回false + * @param iter 被检查的{@link Iterator}对象,如果为{@code null} 返回false * @return 是否包含{@code null}元素 */ public static boolean hasNull(Iterator iter) { @@ -110,7 +110,7 @@ public static boolean hasNull(Iterator iter) { /** * 是否全部元素为null * - * @param iter iter 被检查的{@link Iterable}对象,如果为{@code null} 返回true + * @param iter iter 被检查的{@link Iterable}对象,如果为{@code null} 返回true * @return 是否全部元素为null * @since 3.3.0 */ @@ -121,7 +121,7 @@ public static boolean isAllNull(Iterable iter) { /** * 是否全部元素为null * - * @param iter iter 被检查的{@link Iterator}对象,如果为{@code null} 返回true + * @param iter iter 被检查的{@link Iterator}对象,如果为{@code null} 返回true * @return 是否全部元素为null * @since 3.3.0 */ @@ -140,14 +140,14 @@ public static boolean isAllNull(Iterator iter) { /** * 根据集合返回一个元素计数的 {@link Map} - * 所谓元素计数就是假如这个集合中某个元素出现了n次,那将这个元素做为key,n做为value + * 所谓元素计数就是假如这个集合中某个元素出现了n次,那将这个元素做为key,n做为value * 例如:[a,b,c,c,c] 得到: * a: 1 * b: 1 * c: 3 * * @param 集合元素类型 - * @param iter {@link Iterable},如果为null返回一个空的Map + * @param iter {@link Iterable},如果为null返回一个空的Map * @return {@link Map} */ public static Map countMap(Iterable iter) { @@ -156,14 +156,14 @@ public static Map countMap(Iterable iter) { /** * 根据集合返回一个元素计数的 {@link Map} - * 所谓元素计数就是假如这个集合中某个元素出现了n次,那将这个元素做为key,n做为value + * 所谓元素计数就是假如这个集合中某个元素出现了n次,那将这个元素做为key,n做为value * 例如:[a,b,c,c,c] 得到: * a: 1 * b: 1 * c: 3 * * @param 集合元素类型 - * @param iter {@link Iterator},如果为null返回一个空的Map + * @param iter {@link Iterator},如果为null返回一个空的Map * @return {@link Map} */ public static Map countMap(Iterator iter) { @@ -185,10 +185,10 @@ public static Map countMap(Iterator iter) { } /** - * 字段值与列表值对应的Map,常用于元素对象中有唯一ID时需要按照这个ID查找对象的情况 + * 字段值与列表值对应的Map,常用于元素对象中有唯一ID时需要按照这个ID查找对象的情况 * 例如:车牌号 =》车 * - * @param 字段名对应值得类型,不确定请使用Object + * @param 字段名对应值得类型,不确定请使用Object * @param 对象类型 * @param iter 对象列表 * @param fieldName 字段名(会通过反射获取其值) @@ -199,10 +199,10 @@ public static Map fieldValueMap(Iterable iter, String fieldName) } /** - * 字段值与列表值对应的Map,常用于元素对象中有唯一ID时需要按照这个ID查找对象的情况 + * 字段值与列表值对应的Map,常用于元素对象中有唯一ID时需要按照这个ID查找对象的情况 * 例如:车牌号 =》车 * - * @param 字段名对应值得类型,不确定请使用Object + * @param 字段名对应值得类型,不确定请使用Object * @param 对象类型 * @param iter 对象列表 * @param fieldName 字段名(会通过反射获取其值) @@ -223,8 +223,8 @@ public static Map fieldValueMap(Iterator iter, String fieldName) /** * 两个字段值组成新的Map * - * @param 字段名对应值得类型,不确定请使用Object - * @param 值类型,不确定使用Object + * @param 字段名对应值得类型,不确定请使用Object + * @param 值类型,不确定使用Object * @param iter 对象列表 * @param fieldNameForKey 做为键的字段名(会通过反射获取其值) * @param fieldNameForValue 做为值的字段名(会通过反射获取其值) @@ -243,7 +243,7 @@ public static Map fieldValueAsMap(Iterator iter, String fieldNam } /** - * 获取指定Bean列表中某个字段,生成新的列表 + * 获取指定Bean列表中某个字段,生成新的列表 * * @param 对象类型 * @param iter 对象列表 @@ -283,8 +283,8 @@ public static String join(Iterable iterable, CharSequence conjunction) { * @param 集合元素类型 * @param iterable {@link Iterable} * @param conjunction 分隔符 - * @param prefix 每个元素添加的前缀,null表示不添加 - * @param suffix 每个元素添加的后缀,null表示不添加 + * @param prefix 每个元素添加的前缀,null表示不添加 + * @param suffix 每个元素添加的后缀,null表示不添加 * @return 连接后的字符串 */ public static String join(Iterable iterable, CharSequence conjunction, String prefix, String suffix) { @@ -296,7 +296,7 @@ public static String join(Iterable iterable, CharSequence conjunction, St /** * 以 conjunction 为分隔符将集合转换为字符串 - * 如果集合元素为数组、{@link Iterable}或{@link Iterator},则递归组合其为字符串 + * 如果集合元素为数组、{@link Iterable}或{@link Iterator},则递归组合其为字符串 * * @param 集合元素类型 * @param iterator 集合 @@ -309,13 +309,13 @@ public static String join(Iterator iterator, CharSequence conjunction) { /** * 以 conjunction 为分隔符将集合转换为字符串 - * 如果集合元素为数组、{@link Iterable}或{@link Iterator},则递归组合其为字符串 + * 如果集合元素为数组、{@link Iterable}或{@link Iterator},则递归组合其为字符串 * * @param 集合元素类型 * @param iterator 集合 * @param conjunction 分隔符 - * @param prefix 每个元素添加的前缀,null表示不添加 - * @param suffix 每个元素添加的后缀,null表示不添加 + * @param prefix 每个元素添加的前缀,null表示不添加 + * @param suffix 每个元素添加的后缀,null表示不添加 * @return 连接后的字符串 */ public static String join(Iterator iterator, CharSequence conjunction, String prefix, String suffix) { @@ -367,8 +367,8 @@ public static HashMap toMap(Iterable> entryIter) { /** * 将键列表和值列表转换为Map - * 以键为准,值与键位置需对应。如果键元素数多于值元素,多余部分值用null代替。 - * 如果值多于键,忽略多余的值。 + * 以键为准,值与键位置需对应 如果键元素数多于值元素,多余部分值用null代替 + * 如果值多于键,忽略多余的值 * * @param 键类型 * @param 值类型 @@ -383,8 +383,8 @@ public static Map toMap(Iterable keys, Iterable values) { /** * 将键列表和值列表转换为Map - * 以键为准,值与键位置需对应。如果键元素数多于值元素,多余部分值用null代替。 - * 如果值多于键,忽略多余的值。 + * 以键为准,值与键位置需对应 如果键元素数多于值元素,多余部分值用null代替 + * 如果值多于键,忽略多余的值 * * @param 键类型 * @param 值类型 @@ -399,8 +399,8 @@ public static Map toMap(Iterable keys, Iterable values, boole /** * 将键列表和值列表转换为Map - * 以键为准,值与键位置需对应。如果键元素数多于值元素,多余部分值用null代替。 - * 如果值多于键,忽略多余的值。 + * 以键为准,值与键位置需对应 如果键元素数多于值元素,多余部分值用null代替 + * 如果值多于键,忽略多余的值 * * @param 键类型 * @param 值类型 @@ -415,8 +415,8 @@ public static Map toMap(Iterator keys, Iterator values) { /** * 将键列表和值列表转换为Map - * 以键为准,值与键位置需对应。如果键元素数多于值元素,多余部分值用null代替。 - * 如果值多于键,忽略多余的值。 + * 以键为准,值与键位置需对应 如果键元素数多于值元素,多余部分值用null代替 + * 如果值多于键,忽略多余的值 * * @param 键类型 * @param 值类型 @@ -437,7 +437,7 @@ public static Map toMap(Iterator keys, Iterator values, boole /** * Iterator转List - * 不判断,直接生成新的List + * 不判断,直接生成新的List * * @param 元素类型 * @param iter {@link Iterator} @@ -449,7 +449,7 @@ public static List toList(Iterable iter) { /** * Iterator转List - * 不判断,直接生成新的List + * 不判断,直接生成新的List * * @param 元素类型 * @param iter {@link Iterator} @@ -509,10 +509,10 @@ public static T getFirst(Iterator iterator) { /** * 获得{@link Iterable}对象的元素类型(通过第一个非空元素判断) - * 注意,此方法至少会调用多次next方法 + * 注意,此方法至少会调用多次next方法 * * @param iterable {@link Iterable} - * @return 元素类型,当列表为空或元素全部为null时,返回null + * @return 元素类型, 当列表为空或元素全部为null时, 返回null */ public static Class getElementType(Iterable iterable) { if (null != iterable) { @@ -524,10 +524,10 @@ public static Class getElementType(Iterable iterable) { /** * 获得{@link Iterator}对象的元素类型(通过第一个非空元素判断) - * 注意,此方法至少会调用多次next方法 + * 注意,此方法至少会调用多次next方法 * * @param iterator {@link Iterator} - * @return 元素类型,当列表为空或元素全部为null时,返回null + * @return 元素类型, 当列表为空或元素全部为null时, 返回null */ public static Class getElementType(Iterator iterator) { List eleList = new LinkedList<>(); diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/JsonUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/JsonUtils.java index b0d6c88bda..c32d2967bb 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/JsonUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/JsonUtils.java @@ -47,10 +47,10 @@ public class JsonUtils { private static final SerializeConfig config; private static final SerializerFeature[] features = {SerializerFeature.WriteMapNullValue, // 输出空置字段 - SerializerFeature.WriteNullListAsEmpty, // list字段如果为null,输出为[],而不是null - SerializerFeature.WriteNullNumberAsZero, // 数值字段如果为null,输出为0,而不是null - SerializerFeature.WriteNullBooleanAsFalse, // Boolean字段如果为null,输出为false,而不是null - SerializerFeature.WriteNullStringAsEmpty // 字符类型字段如果为null,输出为"",而不是null + SerializerFeature.WriteNullListAsEmpty, // list字段如果为null,输出为[],而不是null + SerializerFeature.WriteNullNumberAsZero, // 数值字段如果为null,输出为0,而不是null + SerializerFeature.WriteNullBooleanAsFalse, // Boolean字段如果为null,输出为false,而不是null + SerializerFeature.WriteNullStringAsEmpty // 字符类型字段如果为null,输出为"",而不是null }; static { diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/MapUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/MapUtils.java index 224b835cbb..9df80dc1e9 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/MapUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/MapUtils.java @@ -49,7 +49,7 @@ public class MapUtils { */ public static final int DEFAULT_INITIAL_CAPACITY = 16; /** - * 默认增长因子,当Map的size达到 容量*增长因子时,开始扩充Map + * 默认增长因子,当Map的size达到 容量*增长因子时,开始扩充Map */ public static final float DEFAULT_LOAD_FACTOR = 0.75f; @@ -89,8 +89,8 @@ public static HashMap newHashMap() { * * @param Key类型 * @param Value类型 - * @param size 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75 - * @param isOrder Map的Key是否有序,有序返回 {@link LinkedHashMap},否则返回 {@link HashMap} + * @param size 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75 + * @param isOrder Map的Key是否有序,有序返回 {@link LinkedHashMap},否则返回 {@link HashMap} * @return HashMap对象 * @since 3.0.4 */ @@ -104,7 +104,7 @@ public static HashMap newHashMap(int size, boolean isOrder) { * * @param Key类型 * @param Value类型 - * @param size 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75 + * @param size 初始大小,由于默认负载因子0.75,传入的size会实际初始大小为size / 0.75 * @return HashMap对象 */ public static HashMap newHashMap(int size) { @@ -116,7 +116,7 @@ public static HashMap newHashMap(int size) { * * @param Key类型 * @param Value类型 - * @param isOrder Map的Key是否有序,有序返回 {@link LinkedHashMap},否则返回 {@link HashMap} + * @param isOrder Map的Key是否有序,有序返回 {@link LinkedHashMap},否则返回 {@link HashMap} * @return HashMap对象 */ public static HashMap newHashMap(boolean isOrder) { @@ -124,7 +124,7 @@ public static HashMap newHashMap(boolean isOrder) { } /** - * 新建TreeMap,Key有序的Map + * 新建TreeMap,Key有序的Map * * @param Key类型 * @param Value类型 @@ -137,7 +137,7 @@ public static TreeMap newTreeMap(Comparator comparator) } /** - * 新建TreeMap,Key有序的Map + * 新建TreeMap,Key有序的Map * * @param Key类型 * @param Value类型 @@ -205,13 +205,13 @@ public static HashMap of(K key, V value, boolean isOrder) { } /** - * 将数组转换为Map(HashMap),支持数组元素类型为: + * 将数组转换为Map(HashMap),支持数组元素类型为: * *
          * Map.Entry
    -     * 长度大于1的数组(取前两个值),如果不满足跳过此元素
    -     * Iterable 长度也必须大于1(取前两个值),如果不满足跳过此元素
    -     * Iterator 长度也必须大于1(取前两个值),如果不满足跳过此元素
    +     * 长度大于1的数组(取前两个值),如果不满足跳过此元素
    +     * Iterable 长度也必须大于1(取前两个值),如果不满足跳过此元素
    +     * Iterator 长度也必须大于1(取前两个值),如果不满足跳过此元素
          * 
    * *
    @@ -223,7 +223,7 @@ public static  HashMap of(K key, V value, boolean isOrder) {
          * 

    * 参考:commons-lang * - * @param array 数组。元素类型为Map.Entry、数组、Iterable、Iterator + * @param array 数组 元素类型为Map.Entry、数组、Iterable、Iterator * @return {@link HashMap} */ public static HashMap of(Object[] array) { @@ -267,7 +267,7 @@ public static HashMap of(Object[] array) { } /** - * 行转列,合并相同的键,值合并为列表 + * 行转列,合并相同的键,值合并为列表 * 将Map列表中相同key的值组成列表做为Map的value * 是{@link #toMapList(Map)}的逆方法 * 比如传入数据: @@ -323,7 +323,7 @@ public static Map> toListMap(Iterable> map } /** - * 列转行。将Map中值列表分别按照其位置与key组成新的map。 + * 列转行 将Map中值列表分别按照其位置与key组成新的map * 是{@link #toListMap(Iterable)}的逆方法 * 比如传入数据: * @@ -357,7 +357,7 @@ public static List> toMapList(Map> lis return resultList; } - boolean isEnd = true;// 是否结束。标准是元素列表已耗尽 + boolean isEnd = true;// 是否结束 标准是元素列表已耗尽 int index = 0;// 值索引 Map map; do { @@ -371,7 +371,7 @@ public static List> toMapList(Map> lis if (index < vListSize) { map.put(entry.getKey(), vList.get(index)); if (index != vListSize - 1) { - // 当值列表中还有更多值(非最后一个),继续循环 + // 当值列表中还有更多值(非最后一个),继续循环 isEnd = false; } } @@ -387,7 +387,7 @@ public static List> toMapList(Map> lis /** * 将已知Map转换为key为驼峰风格的Map - * 如果KEY为非String类型,保留原值 + * 如果KEY为非String类型,保留原值 * * @param Key类型 * @param Value类型 @@ -400,7 +400,7 @@ public static Map toCamelCaseMap(Map map) { } /** - * 将键值对转换为二维数组,第一维是key,第二纬是value + * 将键值对转换为二维数组,第一维是key,第二纬是value * * @param map Map * @return 数组 @@ -438,7 +438,7 @@ public static String join(Map map, String separator, String keyValu } /** - * 将map转成字符串,忽略null的键和值 + * 将map转成字符串,忽略null的键和值 * * @param 键类型 * @param 值类型 @@ -481,11 +481,11 @@ public static String join(Map map, String separator, String keyValu /** * 过滤 - * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: + * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: * *

    -     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
    -     * 2、修改元素对象,返回集合中为修改后的对象
    +     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
    +     * 2、修改元素对象,返回集合中为修改后的对象
          * 
    * * @param Key类型 @@ -513,11 +513,11 @@ public static Map filter(Map map, Editor> editor) /** * 过滤 - * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: + * 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: * *
    -     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
    -     * 2、修改元素对象,返回集合中为修改后的对象
    +     * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
    +     * 2、修改元素对象,返回集合中为修改后的对象
          * 
    * * @param Key类型 @@ -543,13 +543,13 @@ public static Map filter(Map map, Filter> filter) } /** - * 过滤Map保留指定键值对,如果键不存在跳过 + * 过滤Map保留指定键值对,如果键不存在跳过 * * @param Key类型 * @param Value类型 * @param map 原始Map * @param keys 键列表 - * @return Map 结果,结果的Map类型与原Map保持一致 + * @return Map 结果,结果的Map类型与原Map保持一致 */ public static Map filter(Map map, K... keys) { final Map map2 = ObjectUtils.clone(map); @@ -570,7 +570,7 @@ public static Map filter(Map map, K... keys) { * Map的键和值互换 * * @param 键和值类型 - * @param map Map对象,键值类型必须一致 + * @param map Map对象,键值类型必须一致 * @return 互换后的Map * @since 5.2.2 */ @@ -600,7 +600,7 @@ public T setValue(T value) { } /** - * 排序已有Map,Key有序的Map,使用默认Key排序方式(字母顺序) + * 排序已有Map,Key有序的Map,使用默认Key排序方式(字母顺序) * * @param Key类型 * @param Value类型 @@ -613,7 +613,7 @@ public static TreeMap sort(Map map) { } /** - * 排序已有Map,Key有序的Map + * 排序已有Map,Key有序的Map * * @param Key类型 * @param Value类型 @@ -625,7 +625,7 @@ public static TreeMap sort(Map map) { public static TreeMap sort(Map map, Comparator comparator) { TreeMap result; if (map instanceof TreeMap) { - // 已经是可排序Map,此时只有比较器一致才返回原map + // 已经是可排序Map,此时只有比较器一致才返回原map result = (TreeMap) map; if (null == comparator || comparator.equals(result.comparator())) { return result; @@ -639,7 +639,7 @@ public static TreeMap sort(Map map, Comparator com /** * 创建代理Map - * {@link MapProxy}对Map做一次包装,提供各种getXXX方法 + * {@link MapProxy}对Map做一次包装,提供各种getXXX方法 * * @param map 被代理的Map * @return {@link MapProxy} @@ -692,7 +692,7 @@ public static MapBuilder builder(K k, V v) { * @param Value类型 * @param map Map * @param keys 键列表 - * @return 新Map,只包含指定的key + * @return 新Map, 只包含指定的key */ public static Map getAny(Map map, final K... keys) { return filter(map, new Filter>() { @@ -705,7 +705,7 @@ public boolean accept(Entry entry) { } /** - * 获取Map指定key的值,并转换为字符串 + * 获取Map指定key的值,并转换为字符串 * * @param map Map * @param key 键 @@ -716,7 +716,7 @@ public static String getString(Map map, Object key) { } /** - * 获取Map指定key的值,并转换为Integer + * 获取Map指定key的值,并转换为Integer * * @param map Map * @param key 键 @@ -727,7 +727,7 @@ public static Integer getInt(Map map, Object key) { } /** - * 获取Map指定key的值,并转换为Double + * 获取Map指定key的值,并转换为Double * * @param map Map * @param key 键 @@ -738,7 +738,7 @@ public static Double getDouble(Map map, Object key) { } /** - * 获取Map指定key的值,并转换为Float + * 获取Map指定key的值,并转换为Float * * @param map Map * @param key 键 @@ -749,7 +749,7 @@ public static Float getFloat(Map map, Object key) { } /** - * 获取Map指定key的值,并转换为Short + * 获取Map指定key的值,并转换为Short * * @param map Map * @param key 键 @@ -760,7 +760,7 @@ public static Short getShort(Map map, Object key) { } /** - * 获取Map指定key的值,并转换为Bool + * 获取Map指定key的值,并转换为Bool * * @param map Map * @param key 键 @@ -771,7 +771,7 @@ public static Boolean getBool(Map map, Object key) { } /** - * 获取Map指定key的值,并转换为Character + * 获取Map指定key的值,并转换为Character * * @param map Map * @param key 键 @@ -782,7 +782,7 @@ public static Character getChar(Map map, Object key) { } /** - * 获取Map指定key的值,并转换为Long + * 获取Map指定key的值,并转换为Long * * @param map Map * @param key 键 @@ -793,7 +793,7 @@ public static Long getLong(Map map, Object key) { } /** - * 获取Map指定key的值,并转换为{@link Date} + * 获取Map指定key的值,并转换为{@link Date} * * @param map Map * @param key 键 @@ -804,7 +804,7 @@ public static Date getDate(Map map, Object key) { } /** - * 获取Map指定key的值,并转换为指定类型 + * 获取Map指定key的值,并转换为指定类型 * * @param 目标值类型 * @param map Map @@ -818,8 +818,8 @@ public static T get(Map map, Object key, Class type) { /** * 重命名键 - * 实现方式为一处然后重新put,当旧的key不存在直接返回 - * 当新的key存在,抛出{@link IllegalArgumentException} 异常 + * 实现方式为一处然后重新put,当旧的key不存在直接返回 + * 当新的key存在,抛出{@link IllegalArgumentException} 异常 * * @param Key类型 * @param Value类型 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/MathUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/MathUtils.java index 1a85bf0d84..bac28f862a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/MathUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/MathUtils.java @@ -30,7 +30,7 @@ /** * 数学相关方法工具类 - * 此工具类与{@link NumberUtils}属于一类工具,NumberUtil偏向于简单数学计算的封装,MathUtil偏向复杂数学计算 + * 此工具类与{@link NumberUtils}属于一类工具,NumberUtil偏向于简单数学计算的封装,MathUtil偏向复杂数学计算 * * @author Kimi Liu * @version 5.2.2 @@ -39,7 +39,7 @@ public class MathUtils { /** - * 计算排列数,即A(n, m) = n!/(n-m)! + * 计算排列数,即A(n, m) = n!/(n-m)! * * @param n 总数 * @param m 选择的个数 @@ -50,7 +50,7 @@ public static long arrangementCount(int n, int m) { } /** - * 计算排列数,即A(n, n) = n! + * 计算排列数,即A(n, n) = n! * * @param n 总数 * @return 排列数 @@ -81,7 +81,7 @@ public static List arrangementSelect(String[] datas) { } /** - * 计算组合数,即C(n, m) = n!/((n-m)! * m!) + * 计算组合数,即C(n, m) = n!/((n-m)! * m!) * * @param n 总数 * @param m 选择的个数 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/MemberUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/MemberUtils.java index ebbbcf7960..35346b2de5 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/MemberUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/MemberUtils.java @@ -109,7 +109,7 @@ public static double add(double v1, double v2) { /** * 提供精确的加法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param v1 被加数 * @param v2 加数 @@ -121,7 +121,7 @@ public static BigDecimal add(Number v1, Number v2) { /** * 提供精确的加法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被加值 * @return 和 @@ -144,7 +144,7 @@ public static BigDecimal add(Number... values) { /** * 提供精确的加法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被加值 * @return 和 @@ -167,7 +167,7 @@ public static BigDecimal add(String... values) { /** * 提供精确的加法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被加值 * @return 和 @@ -234,7 +234,7 @@ public static double sub(double v1, double v2) { /** * 提供精确的减法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param v1 被减数 * @param v2 减数 @@ -246,7 +246,7 @@ public static BigDecimal sub(Number v1, Number v2) { /** * 提供精确的减法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被减值 * @return 差 @@ -269,7 +269,7 @@ public static BigDecimal sub(Number... values) { /** * 提供精确的减法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被减值 * @return 差 @@ -292,7 +292,7 @@ public static BigDecimal sub(String... values) { /** * 提供精确的减法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被减值 * @return 差 @@ -359,7 +359,7 @@ public static double mul(double v1, double v2) { /** * 提供精确的乘法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param v1 被乘数 * @param v2 乘数 @@ -371,7 +371,7 @@ public static BigDecimal mul(Number v1, Number v2) { /** * 提供精确的乘法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被乘值 * @return 积 @@ -405,7 +405,7 @@ public static BigDecimal mul(String v1, String v2) { /** * 提供精确的乘法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被乘值 * @return 积 @@ -428,7 +428,7 @@ public static BigDecimal mul(String... values) { /** * 提供精确的乘法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被乘值 * @return 积 @@ -520,7 +520,7 @@ public static BigDecimal div(String v1, String v2) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 */ public static double div(float v1, float v2, int scale) { @@ -532,7 +532,7 @@ public static double div(float v1, float v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 */ public static double div(float v1, double v2, int scale) { @@ -544,7 +544,7 @@ public static double div(float v1, double v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 */ public static double div(double v1, float v2, int scale) { @@ -556,7 +556,7 @@ public static double div(double v1, float v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 */ public static double div(double v1, double v2, int scale) { @@ -568,7 +568,7 @@ public static double div(double v1, double v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 * @since 3.1.9 */ @@ -581,7 +581,7 @@ public static BigDecimal div(Number v1, Number v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 */ public static BigDecimal div(String v1, String v2, int scale) { @@ -593,7 +593,7 @@ public static BigDecimal div(String v1, String v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 */ @@ -606,7 +606,7 @@ public static double div(float v1, float v2, int scale, RoundingMode roundingMod * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 */ @@ -619,7 +619,7 @@ public static double div(float v1, double v2, int scale, RoundingMode roundingMo * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 */ @@ -632,7 +632,7 @@ public static double div(double v1, float v2, int scale, RoundingMode roundingMo * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 */ @@ -646,7 +646,7 @@ public static double div(double v1, double v2, int scale, RoundingMode roundingM * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 * @since 3.1.9 @@ -660,7 +660,7 @@ public static BigDecimal div(Number v1, Number v2, int scale, RoundingMode round * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 */ @@ -673,7 +673,7 @@ public static BigDecimal div(String v1, String v2, int scale, RoundingMode round * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 * @since 3.1.9 @@ -787,8 +787,8 @@ public static String roundStr(double v, int scale, RoundingMode roundingMode) { * 例如保留四位小数:123.456789 =》 123.4567 * * @param numberStr 数字值的字符串表现形式 - * @param scale 保留小数位数,如果传入小于0,则默认0 - * @param roundingMode 保留小数的模式 {@link RoundingMode},如果传入null则默认四舍五入 + * @param scale 保留小数位数,如果传入小于0,则默认0 + * @param roundingMode 保留小数的模式 {@link RoundingMode},如果传入null则默认四舍五入 * @return 新值 */ public static BigDecimal round(String numberStr, int scale, RoundingMode roundingMode) { @@ -804,8 +804,8 @@ public static BigDecimal round(String numberStr, int scale, RoundingMode roundin * 例如保留四位小数:123.456789 =》 123.4567 * * @param number 数字值 - * @param scale 保留小数位数,如果传入小于0,则默认0 - * @param roundingMode 保留小数的模式 {@link RoundingMode},如果传入null则默认四舍五入 + * @param scale 保留小数位数,如果传入小于0,则默认0 + * @param roundingMode 保留小数的模式 {@link RoundingMode},如果传入null则默认四舍五入 * @return 新值 */ public static BigDecimal round(BigDecimal number, int scale, RoundingMode roundingMode) { @@ -839,16 +839,16 @@ public static String roundStr(String numberStr, int scale, RoundingMode rounding /** * 四舍六入五成双计算法 *

    - * 四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则。 + * 四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则 *

    * *
          * 算法规则:
    -     * 四舍六入五考虑,
    -     * 五后非零就进一,
    -     * 五后皆零看奇偶,
    -     * 五前为偶应舍去,
    -     * 五前为奇要进一。
    +     * 四舍六入五考虑,
    +     * 五后非零就进一,
    +     * 五后皆零看奇偶,
    +     * 五前为偶应舍去,
    +     * 五前为奇要进一
          * 
    * * @param number 需要科学计算的数据 @@ -862,16 +862,16 @@ public static BigDecimal roundHalfEven(Number number, int scale) { /** * 四舍六入五成双计算法 *

    - * 四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则。 + * 四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则 *

    * *
          * 算法规则:
    -     * 四舍六入五考虑,
    -     * 五后非零就进一,
    -     * 五后皆零看奇偶,
    -     * 五前为偶应舍去,
    -     * 五前为奇要进一。
    +     * 四舍六入五考虑,
    +     * 五后非零就进一,
    +     * 五后皆零看奇偶,
    +     * 五前为偶应舍去,
    +     * 五前为奇要进一
          * 
    * * @param value 需要科学计算的数据 @@ -883,7 +883,7 @@ public static BigDecimal roundHalfEven(BigDecimal value, int scale) { } /** - * 保留固定小数位数,舍去多余位数 + * 保留固定小数位数,舍去多余位数 * * @param number 需要科学计算的数据 * @param scale 保留的小数位 @@ -894,7 +894,7 @@ public static BigDecimal roundDown(Number number, int scale) { } /** - * 保留固定小数位数,舍去多余位数 + * 保留固定小数位数,舍去多余位数 * * @param value 需要科学计算的数据 * @param scale 保留的小数位 @@ -908,15 +908,15 @@ public static BigDecimal roundDown(BigDecimal value, int scale) { * 格式化double * 对 {@link DecimalFormat} 做封装 * - * @param pattern 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。 + * @param pattern 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度 0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置 *
      *
    • 0 =》 取一位整数
    • *
    • 0.00 =》 取一位整数和两位小数
    • *
    • 00.000 =》 取两位整数和三位小数
    • *
    • # =》 取所有整数部分
    • - *
    • #.##% =》 以百分比方式计数,并取两位小数
    • - *
    • #.#####E0 =》 显示为科学计数法,并取五位小数
    • - *
    • ,### =》 每三位以逗号进行分隔,例如:299,792,458
    • + *
    • #.##% =》 以百分比方式计数,并取两位小数
    • + *
    • #.#####E0 =》 显示为科学计数法,并取五位小数
    • + *
    • ,### =》 每三位以逗号进行分隔,例如:299,792,458
    • *
    • 光速大小为每秒,###米 =》 将格式嵌入文本
    • *
    * @param value 值 @@ -930,15 +930,15 @@ public static String decimalFormat(String pattern, double value) { * 格式化double * 对 {@link DecimalFormat} 做封装 * - * @param pattern 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。 + * @param pattern 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度 0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置 *
      *
    • 0 =》 取一位整数
    • *
    • 0.00 =》 取一位整数和两位小数
    • *
    • 00.000 =》 取两位整数和三位小数
    • *
    • # =》 取所有整数部分
    • - *
    • #.##% =》 以百分比方式计数,并取两位小数
    • - *
    • #.#####E0 =》 显示为科学计数法,并取五位小数
    • - *
    • ,### =》 每三位以逗号进行分隔,例如:299,792,458
    • + *
    • #.##% =》 以百分比方式计数,并取两位小数
    • + *
    • #.#####E0 =》 显示为科学计数法,并取五位小数
    • + *
    • ,### =》 每三位以逗号进行分隔,例如:299,792,458
    • *
    • 光速大小为每秒,###米 =》 将格式嵌入文本
    • *
    * @param value 值 @@ -950,7 +950,7 @@ public static String decimalFormat(String pattern, long value) { } /** - * 格式化金额输出,每三位用逗号分隔 + * 格式化金额输出,每三位用逗号分隔 * * @param value 金额 * @return 格式化后的值 @@ -961,7 +961,7 @@ public static String decimalFormatMoney(double value) { } /** - * 格式化百分比,小数采用四舍五入方式 + * 格式化百分比,小数采用四舍五入方式 * * @param number 值 * @param scale 保留小数位数 @@ -1126,7 +1126,7 @@ public static boolean isDouble(String s) { /** * 是否是质数(素数) - * 质数表的质数又称素数。指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。 + * 质数表的质数又称素数 指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数 * * @param n 数字 * @return 是否是质数 @@ -1142,7 +1142,7 @@ public static boolean isPrimes(int n) { } /** - * 生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 + * 生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 * * @param begin 最小数字(包含该数) * @param end 最大数字(不包含该数) @@ -1155,11 +1155,11 @@ public static int[] generateRandomNumber(int begin, int end, int size) { begin = end; end = temp; } - // 加入逻辑判断,确保begin * 1、0x开头的视为16进制数字 @@ -1976,10 +1976,10 @@ public static BigDecimal pow(BigDecimal number, int n) { * 3、其它情况按照10进制转换 * 4、空串返回0 * 5、.123形式返回0(按照小于0的小数对待) - * 6、123.56截取小数点之前的数字,忽略小数部分 + * 6、123.56截取小数点之前的数字,忽略小数部分 *
    * - * @param number 数字,支持0x开头、0开头和普通十进制 + * @param number 数字,支持0x开头、0开头和普通十进制 * @return int * @throws NumberFormatException 数字格式异常 */ @@ -2003,7 +2003,7 @@ public static int parseInt(String number) throws NumberFormatException { } /** - * 解析转换数字字符串为long型数字,规则如下: + * 解析转换数字字符串为long型数字,规则如下: * *
          * 1、0x开头的视为16进制数字
    @@ -2012,7 +2012,7 @@ public static int parseInt(String number) throws NumberFormatException {
          * 4、其它情况按照10进制转换
          * 
    * - * @param number 数字,支持0x开头、0开头和普通十进制 + * @param number 数字,支持0x开头、0开头和普通十进制 * @return long */ public static long parseLong(String number) { @@ -2050,7 +2050,7 @@ public static Number parseNumber(String numberStr) { } /** - * int值转byte数组,使用大端字节序(高位字节在前,低位字节在后) + * int值转byte数组,使用大端字节序(高位字节在前,低位字节在后) * * @param value 值 * @return byte数组 @@ -2067,7 +2067,7 @@ public static byte[] toBytes(int value) { } /** - * byte数组转int,使用大端字节序(高位字节在前,低位字节在后) + * byte数组转int,使用大端字节序(高位字节在前,低位字节在后) * * @param bytes * @return int @@ -2080,7 +2080,7 @@ public static int toInt(byte[] bytes) { } /** - * 以无符号字节数组的形式返回传入值。 + * 以无符号字节数组的形式返回传入值 * * @param value 需要转换的值 * @return 无符号bytes @@ -2099,7 +2099,7 @@ public static byte[] toUnsignedByteArray(BigInteger value) { } /** - * 以无符号字节数组的形式返回传入值。 + * 以无符号字节数组的形式返回传入值 * * @param length bytes长度 * @param value 需要转换的值 @@ -2167,7 +2167,7 @@ private static int mathNode(int selectNum) { } /** - * 去掉数字尾部的数字标识,例如12D,44.0F,22L中的最后一个字母 + * 去掉数字尾部的数字标识,例如12D,44.0F,22L中的最后一个字母 * * @param number 数字字符串 * @return 去掉标识的字符串 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/ModifierUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/ModifierUtils.java index 2a04e4899e..9fb3ce2112 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/ModifierUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/ModifierUtils.java @@ -38,11 +38,11 @@ public class ModifierUtils { /** - * 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true) + * 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true) * * @param clazz 类 * @param modifierTypes 修饰符枚举 - * @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false + * @return 是否有指定修饰符, 如果有返回true, 否则false, 如果提供参数为null返回false */ public static boolean hasModifier(Class clazz, ModifierType... modifierTypes) { if (null == clazz || ArrayUtils.isEmpty(modifierTypes)) { @@ -52,11 +52,11 @@ public static boolean hasModifier(Class clazz, ModifierType... modifierTypes) } /** - * 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true) + * 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true) * * @param constructor 构造方法 * @param modifierTypes 修饰符枚举 - * @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false + * @return 是否有指定修饰符, 如果有返回true, 否则false, 如果提供参数为null返回false */ public static boolean hasModifier(Constructor constructor, ModifierType... modifierTypes) { if (null == constructor || ArrayUtils.isEmpty(modifierTypes)) { @@ -66,11 +66,11 @@ public static boolean hasModifier(Constructor constructor, ModifierType... mo } /** - * 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true) + * 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true) * * @param method 方法 * @param modifierTypes 修饰符枚举 - * @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false + * @return 是否有指定修饰符, 如果有返回true, 否则false, 如果提供参数为null返回false */ public static boolean hasModifier(Method method, ModifierType... modifierTypes) { if (null == method || ArrayUtils.isEmpty(modifierTypes)) { @@ -80,11 +80,11 @@ public static boolean hasModifier(Method method, ModifierType... modifierTypes) } /** - * 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true) + * 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true) * * @param field 字段 * @param modifierTypes 修饰符枚举 - * @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false + * @return 是否有指定修饰符, 如果有返回true, 否则false, 如果提供参数为null返回false */ public static boolean hasModifier(Field field, ModifierType... modifierTypes) { if (null == field || ArrayUtils.isEmpty(modifierTypes)) { @@ -164,9 +164,9 @@ public static boolean isStatic(Class clazz) { } /** - * 多个修饰符做“与”操作,表示同时存在多个修饰符 + * 多个修饰符做“与”操作,表示同时存在多个修饰符 * - * @param modifierTypes 修饰符列表,元素不能为空 + * @param modifierTypes 修饰符列表,元素不能为空 * @return “与”之后的修饰符 */ private static int modifiersToInt(ModifierType... modifierTypes) { @@ -182,27 +182,27 @@ private static int modifiersToInt(ModifierType... modifierTypes) { */ public enum ModifierType { /** - * public修饰符,所有类都能访问 + * public修饰符,所有类都能访问 */ PUBLIC(Modifier.PUBLIC), /** - * private修饰符,只能被自己访问和修改 + * private修饰符,只能被自己访问和修改 */ PRIVATE(Modifier.PRIVATE), /** - * protected修饰符,自身、子类及同一个包中类可以访问 + * protected修饰符,自身、子类及同一个包中类可以访问 */ PROTECTED(Modifier.PROTECTED), /** - * static修饰符,(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类 + * static修饰符,(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量 变量属于这个类 */ STATIC(Modifier.STATIC), /** - * final修饰符,最终修饰符,指定此变量的值不能变,使用在方法上表示不能被重载 + * final修饰符,最终修饰符,指定此变量的值不能变,使用在方法上表示不能被重载 */ FINAL(Modifier.FINAL), /** - * synchronized,同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其他线程的访问,运行结束后解锁。 + * synchronized,同步修饰符,在多个线程中,该修饰符用于在运行前,对他所属的方法加锁,以防止其他线程的访问,运行结束后解锁 */ SYNCHRONIZED(Modifier.SYNCHRONIZED), /** @@ -210,20 +210,20 @@ public enum ModifierType { */ VOLATILE(Modifier.VOLATILE), /** - * (过度修饰符)指定该变量是系统保留,暂无特别作用的临时性变量,序列化时忽略 + * (过度修饰符)指定该变量是系统保留,暂无特别作用的临时性变量,序列化时忽略 */ TRANSIENT(Modifier.TRANSIENT), /** - * native,本地修饰符。指定此方法的方法体是用其他语言在程序外部编写的。 + * native,本地修饰符 指定此方法的方法体是用其他语言在程序外部编写的 */ NATIVE(Modifier.NATIVE), /** - * abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现。 + * abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现 */ ABSTRACT(Modifier.ABSTRACT), /** - * strictfp,一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合IEEE-754规范的。 + * strictfp,一旦使用了关键字strictfp来声明某个类、接口或者方法时,那么在这个关键字所声明的范围内所有浮点运算都是精确的,符合IEEE-754规范的 */ STRICT(Modifier.STRICT); @@ -235,14 +235,14 @@ public enum ModifierType { /** * 构造 * - * @param modifier 修饰符int表示,见{@link Modifier} + * @param modifier 修饰符int表示,见{@link Modifier} */ ModifierType(int modifier) { this.value = modifier; } /** - * 获取修饰符枚举对应的int修饰符值,值见{@link Modifier} + * 获取修饰符枚举对应的int修饰符值,值见{@link Modifier} * * @return 修饰符枚举对应的int修饰符值 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/NetUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/NetUtils.java index 022f8a4e5a..30d519cc4d 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/NetUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/NetUtils.java @@ -47,11 +47,11 @@ public class NetUtils { public final static String LOCAL_IP = "127.0.0.1"; /** - * 默认最小端口,1024 + * 默认最小端口,1024 */ public static final int PORT_RANGE_MIN = 1024; /** - * 默认最大端口,65535 + * 默认最大端口,65535 */ public static final int PORT_RANGE_MAX = 0xFFFF; @@ -66,7 +66,7 @@ public static String longToIpv4(long longIP) { // 直接右移24位 sb.append((longIP >>> 24)); sb.append("."); - // 将高8位置0,然后右移16位 + // 将高8位置0,然后右移16位 sb.append(((longIP & 0x00FFFFFF) >>> 16)); sb.append("."); sb.append(((longIP & 0x0000FFFF) >>> 8)); @@ -132,7 +132,7 @@ public static boolean isValidPort(int port) { /** * 查找1024~65535范围内的可用端口 - * 此方法只检测给定范围内的随机一个端口,检测65535-1024次 + * 此方法只检测给定范围内的随机一个端口,检测65535-1024次 * 来自org.springframework.util.SocketUtils * * @return 可用的端口 @@ -142,8 +142,8 @@ public static int getUsableLocalPort() { } /** - * 查找指定范围内的可用端口,最大值为65535 - * 此方法只检测给定范围内的随机一个端口,检测65535-minPort次 + * 查找指定范围内的可用端口,最大值为65535 + * 此方法只检测给定范围内的随机一个端口,检测65535-minPort次 * 来自org.springframework.util.SocketUtils * * @param minPort 端口最小值(包含) @@ -155,7 +155,7 @@ public static int getUsableLocalPort(int minPort) { /** * 查找指定范围内的可用端口 - * 此方法只检测给定范围内的随机一个端口,检测maxPort-minPort次 + * 此方法只检测给定范围内的随机一个端口,检测maxPort-minPort次 * 来自org.springframework.util.SocketUtils * * @param minPort 端口最小值(包含) @@ -197,7 +197,7 @@ public static TreeSet getUsableLocalPorts(int numRequested, int minPort /** * 判定是否为内网IP - * 私有IP:A类 10.0.0.0-10.255.255.255 B类 172.16.0.0-172.31.255.255 C类 192.168.0.0-192.168.255.255 当然,还有127这个网段是环回地址 + * 私有IP:A类 10.0.0.0-10.255.255.255 B类 172.16.0.0-172.31.255.255 C类 192.168.0.0-192.168.255.255 当然,还有127这个网段是环回地址 * * @param ipAddress IP地址 * @return 是否为内网IP @@ -222,7 +222,7 @@ public static boolean isInnerIP(String ipAddress) { /** * 相对URL转换为绝对URL * - * @param absoluteBasePath 基准路径,绝对 + * @param absoluteBasePath 基准路径,绝对 * @param relativePath 相对路径 * @return 绝对URL */ @@ -257,7 +257,7 @@ public static String hideIpPart(long ip) { /** * 构建InetSocketAddress - * 当host中包含端口时(用“:”隔开),使用host中的端口,否则使用默认端口 + * 当host中包含端口时(用“:”隔开),使用host中的端口,否则使用默认端口 * 给定host为空时使用本地host(127.0.0.1) * * @param host Host @@ -301,7 +301,7 @@ public static String getIpByHost(String hostName) { /** * 获取本机所有网卡 * - * @return 所有网卡,异常返回null + * @return 所有网卡, 异常返回null * @since 3.0.1 */ public static Collection getNetworkInterfaces() { @@ -317,7 +317,7 @@ public static Collection getNetworkInterfaces() { /** * 获得本机的IPv4地址列表 - * 返回的IP列表有序,按照系统设备顺序 + * 返回的IP列表有序,按照系统设备顺序 * * @return IP地址列表 {@link LinkedHashSet} */ @@ -335,7 +335,7 @@ public boolean accept(InetAddress t) { /** * 获得本机的IPv6地址列表 - * 返回的IP列表有序,按照系统设备顺序 + * 返回的IP列表有序,按照系统设备顺序 * * @return IP地址列表 {@link LinkedHashSet} */ @@ -368,7 +368,7 @@ public static LinkedHashSet toIpList(Set addressList) { /** * 获得本机的IP地址列表(包括Ipv4和Ipv6) - * 返回的IP列表有序,按照系统设备顺序 + * 返回的IP列表有序,按照系统设备顺序 * * @return IP地址列表 {@link LinkedHashSet} */ @@ -380,7 +380,7 @@ public static LinkedHashSet localIps() { /** * 获取所有满足过滤条件的本地IP地址对象 * - * @param addressFilter 过滤器,null表示不过滤,获取所有地址 + * @param addressFilter 过滤器,null表示不过滤,获取所有地址 * @return 过滤后的地址对象列表 */ public static LinkedHashSet localAddressList(Filter addressFilter) { @@ -412,13 +412,13 @@ public static LinkedHashSet localAddressList(Filter ad } /** - * 获取本机网卡IP地址,这个地址为所有网卡中非回路地址的第一个 - * 如果获取失败调用 {@link InetAddress#getLocalHost()}方法获取。 - * 此方法不会抛出异常,获取失败将返回null + * 获取本机网卡IP地址,这个地址为所有网卡中非回路地址的第一个 + * 如果获取失败调用 {@link InetAddress#getLocalHost()}方法获取 + * 此方法不会抛出异常,获取失败将返回null *

    * 参考:http://stackoverflow.com/questions/9481865/getting-the-ip-address-of-the-current-machine-using-java * - * @return 本机网卡IP地址,获取失败返回null + * @return 本机网卡IP地址, 获取失败返回null * @since 3.0.7 */ public static String getLocalhostStr() { @@ -430,25 +430,25 @@ public static String getLocalhostStr() { } /** - * 获取本机网卡IP地址,规则如下: + * 获取本机网卡IP地址,规则如下: * *

    -     * 1. 查找所有网卡地址,必须非回路(loopback)地址、非局域网地址(siteLocal)、IPv4地址
    -     * 2. 如果无满足要求的地址,调用 {@link InetAddress#getLocalHost()} 获取地址
    +     * 1. 查找所有网卡地址,必须非回路(loopback)地址、非局域网地址(siteLocal)、IPv4地址
    +     * 2. 如果无满足要求的地址,调用 {@link InetAddress#getLocalHost()} 获取地址
          * 
    *

    - * 此方法不会抛出异常,获取失败将返回null + * 此方法不会抛出异常,获取失败将返回null * - * @return 本机网卡IP地址,获取失败返回null + * @return 本机网卡IP地址, 获取失败返回null * @since 3.0.1 */ public static InetAddress getLocalhost() { final LinkedHashSet localAddressList = localAddressList(new Filter() { @Override public boolean accept(InetAddress address) { - // 非loopback地址,指127.*.*.*的地址 + // 非loopback地址,指127.*.*.*的地址 return false == address.isLoopbackAddress() - // 非地区本地地址,指10.0.0.0 ~ 10.255.255.255、172.16.0.0 ~ 172.31.255.255、192.168.0.0 ~ 192.168.255.255 + // 非地区本地地址,指10.0.0.0 ~ 10.255.255.255、172.16.0.0 ~ 172.31.255.255、192.168.0.0 ~ 192.168.255.255 && false == address.isSiteLocalAddress() // 需为IPV4地址 && address instanceof Inet4Address; @@ -479,10 +479,10 @@ public static String getLocalMacAddress() { } /** - * 获得指定地址信息中的MAC地址,使用分隔符“-” + * 获得指定地址信息中的MAC地址,使用分隔符“-” * * @param inetAddress {@link InetAddress} - * @return MAC地址,用-分隔 + * @return MAC地址, 用-分隔 */ public static String getMacAddress(InetAddress inetAddress) { return getMacAddress(inetAddress, "-"); @@ -492,8 +492,8 @@ public static String getMacAddress(InetAddress inetAddress) { * 获得指定地址信息中的MAC地址 * * @param inetAddress {@link InetAddress} - * @param separator 分隔符,推荐使用“-”或者“:” - * @return MAC地址,用-分隔 + * @param separator 分隔符,推荐使用“-”或者“:” + * @return MAC地址, 用-分隔 */ public static String getMacAddress(InetAddress inetAddress, String separator) { if (null == inetAddress) { @@ -525,8 +525,8 @@ public static String getMacAddress(InetAddress inetAddress, String separator) { /** * 创建 {@link InetSocketAddress} * - * @param host 域名或IP地址,空表示任意地址 - * @param port 端口,0表示系统分配临时端口 + * @param host 域名或IP地址,空表示任意地址 + * @param port 端口,0表示系统分配临时端口 * @return {@link InetSocketAddress} * @since 3.3.0 */ @@ -628,7 +628,7 @@ public static String getMultistageReverseProxyIp(String ip) { } /** - * 检测给定字符串是否为未知,多用于检测HTTP请求相关 + * 检测给定字符串是否为未知,多用于检测HTTP请求相关 * * @param checkString 被检测的字符串 * @return 是否未知 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/NumberUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/NumberUtils.java index 56819284c9..ccfb89cdb8 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/NumberUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/NumberUtils.java @@ -39,7 +39,7 @@ /** * 数字工具类 * 对于精确值计算应该使用 {@link BigDecimal} - * JDK7中BigDecimal(double val)构造方法的结果有一定的不可预知性,例如: + * JDK7中BigDecimal(double val)构造方法的结果有一定的不可预知性,例如: * *

      * new BigDecimal(0.1)
    @@ -48,7 +48,7 @@
      * 表示的不是0.1而是0.1000000000000000055511151231257827021181583404541015625
      *
      * 

    - * 这是因为0.1无法准确的表示为double。因此应该使用new BigDecimal(String)。 + * 这是因为0.1无法准确的表示为double 因此应该使用new BigDecimal(String) *

    * * @author Kimi Liu @@ -108,7 +108,7 @@ public static double add(double v1, double v2) { /** * 提供精确的加法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param v1 被加数 * @param v2 加数 @@ -120,7 +120,7 @@ public static BigDecimal add(Number v1, Number v2) { /** * 提供精确的加法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被加值 * @return 和 @@ -143,7 +143,7 @@ public static BigDecimal add(Number... values) { /** * 提供精确的加法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被加值 * @return 和 @@ -166,7 +166,7 @@ public static BigDecimal add(String... values) { /** * 提供精确的加法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被加值 * @return 和 @@ -233,7 +233,7 @@ public static double sub(double v1, double v2) { /** * 提供精确的减法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param v1 被减数 * @param v2 减数 @@ -245,7 +245,7 @@ public static BigDecimal sub(Number v1, Number v2) { /** * 提供精确的减法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被减值 * @return 差 @@ -268,7 +268,7 @@ public static BigDecimal sub(Number... values) { /** * 提供精确的减法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被减值 * @return 差 @@ -291,7 +291,7 @@ public static BigDecimal sub(String... values) { /** * 提供精确的减法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被减值 * @return 差 @@ -358,7 +358,7 @@ public static double mul(double v1, double v2) { /** * 提供精确的乘法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param v1 被乘数 * @param v2 乘数 @@ -370,7 +370,7 @@ public static BigDecimal mul(Number v1, Number v2) { /** * 提供精确的乘法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被乘值 * @return 积 @@ -404,7 +404,7 @@ public static BigDecimal mul(String v1, String v2) { /** * 提供精确的乘法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被乘值 * @return 积 @@ -427,7 +427,7 @@ public static BigDecimal mul(String... values) { /** * 提供精确的乘法运算 - * 如果传入多个值为null或者空,则返回0 + * 如果传入多个值为null或者空,则返回0 * * @param values 多个被乘值 * @return 积 @@ -520,7 +520,7 @@ public static BigDecimal div(String v1, String v2) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 */ public static double div(float v1, float v2, int scale) { @@ -532,7 +532,7 @@ public static double div(float v1, float v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 */ public static double div(float v1, double v2, int scale) { @@ -544,7 +544,7 @@ public static double div(float v1, double v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 */ public static double div(double v1, float v2, int scale) { @@ -556,7 +556,7 @@ public static double div(double v1, float v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 */ public static double div(double v1, double v2, int scale) { @@ -568,7 +568,7 @@ public static double div(double v1, double v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 * @since 3.1.9 */ @@ -581,7 +581,7 @@ public static BigDecimal div(Number v1, Number v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @return 两个参数的商 */ public static BigDecimal div(String v1, String v2, int scale) { @@ -593,7 +593,7 @@ public static BigDecimal div(String v1, String v2, int scale) { * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 */ @@ -606,7 +606,7 @@ public static double div(float v1, float v2, int scale, RoundingMode roundingMod * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 */ @@ -619,7 +619,7 @@ public static double div(float v1, double v2, int scale, RoundingMode roundingMo * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 */ @@ -632,7 +632,7 @@ public static double div(double v1, float v2, int scale, RoundingMode roundingMo * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 */ @@ -645,7 +645,7 @@ public static double div(double v1, double v2, int scale, RoundingMode roundingM * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 * @since 3.1.9 @@ -659,7 +659,7 @@ public static BigDecimal div(Number v1, Number v2, int scale, RoundingMode round * * @param v1 被除数 * @param v2 除数 - * @param scale 精确度,如果为负值,取绝对值 + * @param scale 精确度,如果为负值,取绝对值 * @param roundingMode 保留小数的模式 {@link RoundingMode} * @return 两个参数的商 */ @@ -685,8 +685,8 @@ public static BigDecimal round(BigDecimal number, int scale) { * 例如保留四位小数:123.456789 =》 123.4567 * * @param number 数字值 - * @param scale 保留小数位数,如果传入小于0,则默认0 - * @param roundingMode 保留小数的模式 {@link RoundingMode},如果传入null则默认四舍五入 + * @param scale 保留小数位数,如果传入小于0,则默认0 + * @param roundingMode 保留小数的模式 {@link RoundingMode},如果传入null则默认四舍五入 * @return 新值 */ public static BigDecimal round(BigDecimal number, int scale, RoundingMode roundingMode) { @@ -706,16 +706,16 @@ public static BigDecimal round(BigDecimal number, int scale, RoundingMode roundi /** * 四舍六入五成双计算法 *

    - * 四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则。 + * 四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则 *

    * *
          * 算法规则:
    -     * 四舍六入五考虑,
    -     * 五后非零就进一,
    -     * 五后皆零看奇偶,
    -     * 五前为偶应舍去,
    -     * 五前为奇要进一。
    +     * 四舍六入五考虑,
    +     * 五后非零就进一,
    +     * 五后皆零看奇偶,
    +     * 五前为偶应舍去,
    +     * 五前为奇要进一
          * 
    * * @param number 需要科学计算的数据 @@ -729,16 +729,16 @@ public static BigDecimal roundHalfEven(Number number, int scale) { /** * 四舍六入五成双计算法 *

    - * 四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则。 + * 四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则 *

    * *
          * 算法规则:
    -     * 四舍六入五考虑,
    -     * 五后非零就进一,
    -     * 五后皆零看奇偶,
    -     * 五前为偶应舍去,
    -     * 五前为奇要进一。
    +     * 四舍六入五考虑,
    +     * 五后非零就进一,
    +     * 五后皆零看奇偶,
    +     * 五前为偶应舍去,
    +     * 五前为奇要进一
          * 
    * * @param value 需要科学计算的数据 @@ -750,7 +750,7 @@ public static BigDecimal roundHalfEven(BigDecimal value, int scale) { } /** - * 保留固定小数位数,舍去多余位数 + * 保留固定小数位数,舍去多余位数 * * @param number 需要科学计算的数据 * @param scale 保留的小数位 @@ -761,7 +761,7 @@ public static BigDecimal roundDown(Number number, int scale) { } /** - * 保留固定小数位数,舍去多余位数 + * 保留固定小数位数,舍去多余位数 * * @param value 需要科学计算的数据 * @param scale 保留的小数位 @@ -775,15 +775,15 @@ public static BigDecimal roundDown(BigDecimal value, int scale) { * 格式化double * 对 {@link DecimalFormat} 做封装 * - * @param pattern 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。 + * @param pattern 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度 0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置 *
      *
    • 0 =》 取一位整数
    • *
    • 0.00 =》 取一位整数和两位小数
    • *
    • 00.000 =》 取两位整数和三位小数
    • *
    • # =》 取所有整数部分
    • - *
    • #.##% =》 以百分比方式计数,并取两位小数
    • - *
    • #.#####E0 =》 显示为科学计数法,并取五位小数
    • - *
    • ,### =》 每三位以逗号进行分隔,例如:299,792,458
    • + *
    • #.##% =》 以百分比方式计数,并取两位小数
    • + *
    • #.#####E0 =》 显示为科学计数法,并取五位小数
    • + *
    • ,### =》 每三位以逗号进行分隔,例如:299,792,458
    • *
    • 光速大小为每秒,###米 =》 将格式嵌入文本
    • *
    * @param value 值 @@ -797,15 +797,15 @@ public static String decimalFormat(String pattern, double value) { * 格式化double * 对 {@link DecimalFormat} 做封装 * - * @param pattern 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度。0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置。 + * @param pattern 格式 格式中主要以 # 和 0 两种占位符号来指定数字长度 0 表示如果位数不足则以 0 填充,# 表示只要有可能就把数字拉上这个位置 *
      *
    • 0 =》 取一位整数
    • *
    • 0.00 =》 取一位整数和两位小数
    • *
    • 00.000 =》 取两位整数和三位小数
    • *
    • # =》 取所有整数部分
    • - *
    • #.##% =》 以百分比方式计数,并取两位小数
    • - *
    • #.#####E0 =》 显示为科学计数法,并取五位小数
    • - *
    • ,### =》 每三位以逗号进行分隔,例如:299,792,458
    • + *
    • #.##% =》 以百分比方式计数,并取两位小数
    • + *
    • #.#####E0 =》 显示为科学计数法,并取五位小数
    • + *
    • ,### =》 每三位以逗号进行分隔,例如:299,792,458
    • *
    • 光速大小为每秒,###米 =》 将格式嵌入文本
    • *
    * @param value 值 @@ -817,7 +817,7 @@ public static String decimalFormat(String pattern, long value) { } /** - * 格式化金额输出,每三位用逗号分隔 + * 格式化金额输出,每三位用逗号分隔 * * @param value 金额 * @return 格式化后的值 @@ -828,7 +828,7 @@ public static String decimalFormatMoney(double value) { } /** - * 格式化百分比,小数采用四舍五入方式 + * 格式化百分比,小数采用四舍五入方式 * * @param number 值 * @param scale 保留小数位数 @@ -990,7 +990,7 @@ public static boolean isDouble(String s) { /** * 是否是质数 - * 质数表的质数又称素数。指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。 + * 质数表的质数又称素数 指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数 * * @param n 数字 * @return 是否是质数 @@ -1005,7 +1005,7 @@ public static boolean isPrimes(int n) { } /** - * 生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 + * 生成不重复随机数 根据给定的最小数字和最大数字,以及随机数的个数,产生指定的不重复的数组 * * @param begin 最小数字(包含该数) * @param end 最大数字(不包含该数) @@ -1018,11 +1018,11 @@ public static int[] generateRandomNumber(int begin, int end, int size) { begin = end; end = temp; } - // 加入逻辑判断,确保begin * 1、0x开头的视为16进制数字 * 2、0开头的视为8进制数字 @@ -1767,7 +1767,7 @@ public static BigDecimal pow(BigDecimal number, int n) { * 4、其它情况按照10进制转换 *
    * - * @param number 数字,支持0x开头、0开头和普通十进制 + * @param number 数字,支持0x开头、0开头和普通十进制 * @return int */ public static int parseInt(String number) { @@ -1785,7 +1785,7 @@ public static int parseInt(String number) { } /** - * 解析转换数字字符串为long型数字,规则如下: + * 解析转换数字字符串为long型数字,规则如下: *
          * 1、0x开头的视为16进制数字
          * 2、0开头的视为8进制数字
    @@ -1793,7 +1793,7 @@ public static int parseInt(String number) {
          * 4、其它情况按照10进制转换
          * 
    * - * @param number 数字,支持0x开头、0开头和普通十进制 + * @param number 数字,支持0x开头、0开头和普通十进制 * @return long */ public static long parseLong(String number) { @@ -1842,7 +1842,7 @@ public static Number parseNumber(String numberStr) { } /** - * 去掉数字尾部的数字标识,例如12D,44.0F,22L中的最后一个字母 + * 去掉数字尾部的数字标识,例如12D,44.0F,22L中的最后一个字母 * * @param number 数字字符串 * @return 去掉标识的字符串 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/PatternUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/PatternUtils.java index 17b942e699..2ac5de1696 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/PatternUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/PatternUtils.java @@ -45,7 +45,7 @@ public class PatternUtils { private static final ReentrantReadWriteLock.WriteLock writeLock = cacheLock.writeLock(); /** - * 先从Pattern池中查找正则对应的{@link Pattern},找不到则编译正则表达式并入池。 + * 先从Pattern池中查找正则对应的{@link Pattern},找不到则编译正则表达式并入池 * * @param regex 正则表达式 * @return {@link Pattern} @@ -55,7 +55,7 @@ public static Pattern get(String regex) { } /** - * 先从Pattern池中查找正则对应的{@link Pattern},找不到则编译正则表达式并入池。 + * 先从Pattern池中查找正则对应的{@link Pattern},找不到则编译正则表达式并入池 * * @param regex 正则表达式 * @param flags 正则标识位集合 {@link Pattern} @@ -72,11 +72,11 @@ public static Pattern get(String regex, int flags) { } /** - * 获得匹配的字符串,获得正则中分组0的内容 + * 获得匹配的字符串,获得正则中分组0的内容 * * @param regex 匹配的正则 * @param content 被匹配的内容 - * @return 匹配后得到的字符串,未匹配返回null + * @return 匹配后得到的字符串, 未匹配返回null * @since 3.1.9 */ public static String getGroup0(String regex, String content) { @@ -84,11 +84,11 @@ public static String getGroup0(String regex, String content) { } /** - * 获得匹配的字符串,获得正则中分组1的内容 + * 获得匹配的字符串,获得正则中分组1的内容 * * @param regex 匹配的正则 * @param content 被匹配的内容 - * @return 匹配后得到的字符串,未匹配返回null + * @return 匹配后得到的字符串, 未匹配返回null * @since 3.1.9 */ public static String getGroup1(String regex, String content) { @@ -101,7 +101,7 @@ public static String getGroup1(String regex, String content) { * @param regex 匹配的正则 * @param content 被匹配的内容 * @param groupIndex 匹配正则的分组序号 - * @return 匹配后得到的字符串,未匹配返回null + * @return 匹配后得到的字符串, 未匹配返回null */ public static String get(String regex, String content, int groupIndex) { if (null == content || null == regex) { @@ -112,11 +112,11 @@ public static String get(String regex, String content, int groupIndex) { } /** - * 获得匹配的字符串,,获得正则中分组0的内容 + * 获得匹配的字符串,,获得正则中分组0的内容 * * @param pattern 编译后的正则模式 * @param content 被匹配的内容 - * @return 匹配后得到的字符串,未匹配返回null + * @return 匹配后得到的字符串, 未匹配返回null * @since 3.1.9 */ public static String getGroup0(Pattern pattern, String content) { @@ -124,11 +124,11 @@ public static String getGroup0(Pattern pattern, String content) { } /** - * 获得匹配的字符串,,获得正则中分组1的内容 + * 获得匹配的字符串,,获得正则中分组1的内容 * * @param pattern 编译后的正则模式 * @param content 被匹配的内容 - * @return 匹配后得到的字符串,未匹配返回null + * @return 匹配后得到的字符串, 未匹配返回null * @since 3.1.9 */ public static String getGroup1(Pattern pattern, String content) { @@ -141,7 +141,7 @@ public static String getGroup1(Pattern pattern, String content) { * @param pattern 编译后的正则模式 * @param content 被匹配的内容 * @param groupIndex 匹配正则的分组序号 - * @return 匹配后得到的字符串,未匹配返回null + * @return 匹配后得到的字符串, 未匹配返回null */ public static String get(Pattern pattern, String content, int groupIndex) { if (null == content || null == pattern) { @@ -160,7 +160,7 @@ public static String get(Pattern pattern, String content, int groupIndex) { * * @param pattern 编译后的正则模式 * @param content 被匹配的内容 - * @return 匹配后得到的字符串数组,按照分组顺序依次列出,未匹配到返回空列表,任何一个参数为null返回null + * @return 匹配后得到的字符串数组, 按照分组顺序依次列出, 未匹配到返回空列表, 任何一个参数为null返回null * @since 3.1.9 */ public static List getAllGroups(Pattern pattern, String content) { @@ -186,7 +186,7 @@ public static List getAllGroups(Pattern pattern, String content) { * * @param pattern 匹配正则 * @param content 被匹配的内容 - * @param template 生成内容模板,变量 $1 表示group1的内容,以此类推 + * @param template 生成内容模板,变量 $1 表示group1的内容,以此类推 * @return 新字符串 */ public static String extractMulti(Pattern pattern, String content, String template) { @@ -215,7 +215,7 @@ public static String extractMulti(Pattern pattern, String content, String templa * * @param regex 匹配正则字符串 * @param content 被匹配的内容 - * @param template 生成内容模板,变量 $1 表示group1的内容,以此类推 + * @param template 生成内容模板,变量 $1 表示group1的内容,以此类推 * @return 按照template拼接后的字符串 */ public static String extractMulti(String regex, String content, String template) { @@ -274,7 +274,7 @@ public static String delAll(String regex, String content) { } /** - * 删除正则匹配到的内容之前的字符 如果没有找到,则返回原文 + * 删除正则匹配到的内容之前的字符 如果没有找到,则返回原文 * * @param regex 定位正则 * @param content 被查找的内容 @@ -293,7 +293,7 @@ public static String delPre(String regex, String content) { } /** - * 取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组0的内容 + * 取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组0的内容 * * @param regex 正则 * @param content 被查找的内容 @@ -305,7 +305,7 @@ public static List findAllGroup0(String regex, String content) { } /** - * 取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组1的内容 + * 取得内容中匹配的所有结果,获得匹配的所有结果中正则对应分组1的内容 * * @param regex 正则 * @param content 被查找的内容 @@ -388,7 +388,7 @@ public static > T findAll(Pattern pattern, String c } /** - * 计算指定字符串中,匹配pattern的个数 + * 计算指定字符串中,匹配pattern的个数 * * @param regex 正则表达式 * @param content 被查找的内容 @@ -403,7 +403,7 @@ public static int count(String regex, String content) { } /** - * 计算指定字符串中,匹配pattern的个数 + * 计算指定字符串中,匹配pattern的个数 * * @param pattern 编译后的正则模式 * @param content 被查找的内容 @@ -459,7 +459,7 @@ public static boolean contains(Pattern pattern, String content) { * * @param regex 正则 * @param content 内容 - * @return 正则为null或者""则不检查,返回true,内容为null返回false + * @return 正则为null或者""则不检查,返回true,内容为null返回false */ public static boolean isMatch(String regex, String content) { if (content == null) { @@ -479,7 +479,7 @@ public static boolean isMatch(String regex, String content) { * * @param pattern 模式 * @param content 内容 - * @return 正则为null或者""则不检查,返回true,内容为null返回false + * @return 正则为null或者""则不检查,返回true,内容为null返回false */ public static boolean isMatch(Pattern pattern, String content) { if (content == null || pattern == null) { @@ -491,11 +491,11 @@ public static boolean isMatch(Pattern pattern, String content) { /** * 正则替换指定值 - * 通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串 + * 通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串 * * @param content 文本 * @param regex 正则 - * @param replacementTemplate 替换的文本模板,可以使用$1类似的变量提取正则匹配出的内容 + * @param replacementTemplate 替换的文本模板,可以使用$1类似的变量提取正则匹配出的内容 * @return 处理后的文本 */ public static String replaceAll(String content, String regex, String replacementTemplate) { @@ -505,11 +505,11 @@ public static String replaceAll(String content, String regex, String replacement /** * 正则替换指定值 - * 通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串 + * 通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串 * * @param content 文本 * @param pattern {@link Pattern} - * @param replacementTemplate 替换的文本模板,可以使用$1类似的变量提取正则匹配出的内容 + * @param replacementTemplate 替换的文本模板,可以使用$1类似的变量提取正则匹配出的内容 * @return 处理后的文本 * @since 3.0.4 */ @@ -539,7 +539,7 @@ public static String replaceAll(String content, Pattern pattern, String replacem } /** - * 转义字符,将正则的关键字转义 + * 转义字符,将正则的关键字转义 * * @param c 字符 * @return 转义后的文本 @@ -554,7 +554,7 @@ public static String escape(char c) { } /** - * 转义字符串,将正则的关键字转义 + * 转义字符串,将正则的关键字转义 * * @param content 文本 * @return 转义后的文本 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/PinyinUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/PinyinUtils.java index 87414c5a22..894b8a9054 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/PinyinUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/PinyinUtils.java @@ -35,7 +35,7 @@ /** * 拼音工具类 - * 注意:部分拼音并不准确,例如:怡 + * 注意:部分拼音并不准确,例如:怡 * * @author Kimi Liu * @version 5.2.2 @@ -310,7 +310,7 @@ private static String[] convertWithoutTone(String array) { * 将带声调的拼音格式化为相应格式的拼音 * * @param str 带声调的拼音 - * @param format 拼音格式:WITH_TONE_NUMBER--数字代表声调,WITHOUT_TONE--不带声调,WITH_TONE_MARK--带声调 + * @param format 拼音格式:WITH_TONE_NUMBER--数字代表声调,WITHOUT_TONE--不带声调,WITH_TONE_MARK--带声调 * @return 格式转换后的拼音 */ private static String[] format(String str, String format) { @@ -328,7 +328,7 @@ private static String[] format(String str, String format) { * 判断某个字符是否为繁体字 * * @param c 需要判断的字符 - * @return 是繁体字返回true,否则返回false + * @return 是繁体字返回true, 否则返回false */ public static boolean isTraditional(char c) { return DICT_CHINESE.containsKey(String.valueOf(c)); @@ -338,7 +338,7 @@ public static boolean isTraditional(char c) { * 判断某个字符是否为汉字 * * @param c 需要判断的字符 - * @return 是汉字返回true,否则返回false + * @return 是汉字返回true, 否则返回false */ public static boolean isChinese(String c) { String regex = "[\\u4e00-\\u9fa5]"; @@ -349,7 +349,7 @@ public static boolean isChinese(String c) { * 判断某个字符是否为汉字 * * @param c 需要判断的字符 - * @return 是汉字返回true,否则返回false + * @return 是汉字返回true, 否则返回false */ public static boolean isChinese(char c) { String regex = "[\\u4e00-\\u9fa5]"; @@ -360,7 +360,7 @@ public static boolean isChinese(char c) { * 判断一个汉字是否为多音字 * * @param c 汉字 - * @return 判断结果,是汉字返回true,否则返回false + * @return 判断结果, 是汉字返回true, 否则返回false */ public static boolean isPolyphone(char c) { String[] pinyinArray = convert(c); diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/RandomUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/RandomUtils.java index 66c17f4d94..ba090ec276 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/RandomUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/RandomUtils.java @@ -46,7 +46,7 @@ public class RandomUtils { /** * 获取随机数生成器对象 - * ThreadLocalRandom是JDK 7之后提供并发产生随机数,能够解决多个线程发生的竞争争夺。 + * ThreadLocalRandom是JDK 7之后提供并发产生随机数,能够解决多个线程发生的竞争争夺 * * @return {@link ThreadLocalRandom} * @since 3.1.9 @@ -68,7 +68,7 @@ public static Random getRandom(boolean isSecure) { } /** - * 获取{@link SecureRandom},类提供加密的强随机数生成器 (RNG) + * 获取{@link SecureRandom},类提供加密的强随机数生成器 (RNG) * * @return {@link SecureRandom} * @since 3.1.9 @@ -82,7 +82,7 @@ public static SecureRandom getSecureRandom() { } /** - * 创建{@link SecureRandom},类提供加密的强随机数生成器 (RNG)
    + * 创建{@link SecureRandom},类提供加密的强随机数生成器 (RNG)
    * * @param seed 自定义随机种子 * @return {@link SecureRandom} @@ -114,7 +114,7 @@ public static int randomInt() { /** * 获得指定范围内的随机数 [0,limit) * - * @param limit 限制随机数的范围,不包括这个数 + * @param limit 限制随机数的范围,不包括这个数 * @return 随机数 */ public static int randomInt(int limit) { @@ -146,7 +146,7 @@ public static long randomLong() { /** * 获得指定范围内的随机数 [0,limit) * - * @param limit 限制随机数的范围,不包括这个数 + * @param limit 限制随机数的范围,不包括这个数 * @return 随机数 */ public static long randomLong(long limit) { @@ -178,7 +178,7 @@ public static double randomDouble() { /** * 获得指定范围内的随机数 [0,limit) * - * @param limit 限制随机数的范围,不包括这个数 + * @param limit 限制随机数的范围,不包括这个数 * @return 随机数 * @since 3.3.0 */ @@ -295,7 +295,7 @@ public static List randomEles(List list, int count) { } /** - * 随机获得列表中的一定量的不重复元素,返回Set + * 随机获得列表中的一定量的不重复元素,返回Set * * @param 元素类型 * @param collection 列表 @@ -370,7 +370,7 @@ public static String randomString(String baseString, int length) { } /** - * 随机数字,数字为0~9单个数字 + * 随机数字,数字为0~9单个数字 * * @return 随机数字字符 * @since 3.1.9 @@ -380,7 +380,7 @@ public static int randomNumber() { } /** - * 随机字母或数字,小写 + * 随机字母或数字,小写 * * @return 随机字符 * @since 3.1.9 @@ -411,11 +411,11 @@ public static Color randomColor() { } /** - * 以当天为基准,随机产生一个日期 + * 以当天为基准,随机产生一个日期 * - * @param min 偏移最小天,可以为负数表示过去的时间 - * @param max 偏移最大天,可以为负数表示过去的时间 - * @return 随机日期(随机天,其它时间不变) + * @param min 偏移最小天,可以为负数表示过去的时间 + * @param max 偏移最大天,可以为负数表示过去的时间 + * @return 随机日期(随机天,其它时间不变) */ public static DateTime randomDay(int min, int max) { return DateUtils.offsetDay(DateUtils.date(), randomInt(min, max)); diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/ReflectUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/ReflectUtils.java index ac499761e8..3069cb6092 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/ReflectUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/ReflectUtils.java @@ -64,7 +64,7 @@ public class ReflectUtils { /** * 调用Getter方法. - * 支持多级,如:对象名.对象名.方法 + * 支持多级,如:对象名.对象名.方法 * * @param obj 对象 * @param name 属性名 @@ -80,8 +80,8 @@ public static Object invokeGetter(Object obj, String name) { } /** - * 调用Setter方法, 仅匹配方法名。 - * 支持多级,如:对象名.对象名.方法 + * 调用Setter方法, 仅匹配方法名 + * 支持多级,如:对象名.对象名.方法 * * @param obj 对象 * @param name 属性名 @@ -143,8 +143,8 @@ public static Object invokeMethod(Method method, Object target, Object... args) /** * 直接调用对象方法, 无视private/protected修饰符. - * 用于一次性调用的情况,否则应使用getAccessibleMethod()函数获得Method后反复调用. - * 同时匹配方法名+参数类型, + * 用于一次性调用的情况,否则应使用getAccessibleMethod()函数获得Method后反复调用. + * 同时匹配方法名+参数类型, * * @param obj 对象 * @param name 方法名 @@ -167,9 +167,9 @@ public static Object invokeMethod(final Object obj, final String name, final Cla } /** - * 直接调用对象方法, 无视private/protected修饰符, - * 用于一次性调用的情况,否则应使用getAccessibleMethodByName()函数获得Method后反复调用. - * 只匹配函数名,如果有多个同名函数调用第一个。 + * 直接调用对象方法, 无视private/protected修饰符, + * 用于一次性调用的情况,否则应使用getAccessibleMethodByName()函数获得Method后反复调用. + * 只匹配函数名,如果有多个同名函数调用第一个 * * @param obj 对象 * @param name 方法 @@ -215,7 +215,7 @@ public static Field getAccessibleField(final Object obj, final String name) { /** * 循环向上转型, 获取对象的DeclaredMethod,并强制设置为可访问. * 如向上转型到Object仍无法找到, 返回null. - * 匹配函数名+参数类型。 + * 匹配函数名+参数类型 *

    * 用于方法需要被多次调用的情况. 先使用本函数先取得Method,然后调用Method.invoke(Object obj, Object... args) * @@ -242,7 +242,7 @@ public static Method getAccessibleMethod(final Object obj, final String name, /** * 循环向上转型, 获取对象的DeclaredMethod,并强制设置为可访问. * 如向上转型到Object仍无法找到, 返回null. - * 只匹配函数名。 + * 只匹配函数名 *

    * 用于方法需要被多次调用的情况. 先使用本函数先取得Method,然后调用Method.invoke(Object obj, Object... args) * @@ -264,7 +264,7 @@ public static Method getAccessibleMethodByName(final Object obj, final String na } /** - * 改变private/protected的方法为public,尽量不调用实际改动的语句,避免JDK的SecurityManager抱怨。 + * 改变private/protected的方法为public,尽量不调用实际改动的语句,避免JDK的SecurityManager抱怨 * * @param method 方法 */ @@ -276,7 +276,7 @@ public static void makeAccessible(Method method) { } /** - * 改变private/protected的成员变量为public,尽量不调用实际改动的语句,避免JDK的SecurityManager抱怨。 + * 改变private/protected的成员变量为public,尽量不调用实际改动的语句,避免JDK的SecurityManager抱怨 * * @param field 对象 */ @@ -376,8 +376,8 @@ public static boolean hasField(final Object obj, final String fieldName) { * * @param 对象类型 * @param clazz 类 - * @param parameterTypes 参数类型,只要任何一个参数是指定参数的父类或接口或相等即可 - * @return 构造方法,如果未找到返回null + * @param parameterTypes 参数类型,只要任何一个参数是指定参数的父类或接口或相等即可 + * @return 构造方法, 如果未找到返回null */ public static Constructor getConstructor(Class clazz, Class... parameterTypes) { if (null == clazz) { @@ -415,7 +415,7 @@ public static Constructor[] getConstructors(Class beanClass) throws Se } /** - * 获得一个类中所有字段列表,直接反射获取,无缓存 + * 获得一个类中所有字段列表,直接反射获取,无缓存 * * @param beanClass 类 * @return 字段列表 @@ -427,7 +427,7 @@ public static Constructor[] getConstructorsDirectly(Class beanClass) throw } /** - * 查找指定类中的所有字段(包括非public字段),也包括父类和Object类的字段, 字段不存在则返回null + * 查找指定类中的所有字段(包括非public字段),也包括父类和Object类的字段, 字段不存在则返回null * * @param beanClass 被查找字段的类,不能为null * @param name 字段名 @@ -447,7 +447,7 @@ public static Field getField(Class beanClass, String name) throws SecurityExc } /** - * 获得一个类中所有字段列表,包括其父类中的字段 + * 获得一个类中所有字段列表,包括其父类中的字段 * * @param beanClass 类 * @return 字段列表 @@ -464,7 +464,7 @@ public static Field[] getFields(Class beanClass) throws SecurityException { } /** - * 获得一个类中所有字段列表,直接反射获取,无缓存 + * 获得一个类中所有字段列表,直接反射获取,无缓存 * * @param beanClass 类 * @param withSuperClassFieds 是否包括父类的字段列表 @@ -532,7 +532,7 @@ public static Object getFieldValue(Object obj, Field field) throws InstrumentExc * * @param obj 对象 * @param fieldName 字段名 - * @param value 值,值类型必须与字段类型匹配,不会自动转换对象类型 + * @param value 值,值类型必须与字段类型匹配,不会自动转换对象类型 * @throws InstrumentException 包装IllegalAccessException异常 */ public static void setFieldValue(Object obj, String fieldName, Object value) throws InstrumentException { @@ -546,7 +546,7 @@ public static void setFieldValue(Object obj, String fieldName, Object value) thr * * @param obj 对象 * @param field 字段 - * @param value 值,值类型必须与字段类型匹配,不会自动转换对象类型 + * @param value 值,值类型必须与字段类型匹配,不会自动转换对象类型 * @throws InstrumentException UtilException 包装IllegalAccessException异常 */ public static void setFieldValue(Object obj, Field field, Object value) throws InstrumentException { @@ -562,10 +562,10 @@ public static void setFieldValue(Object obj, Field field, Object value) throws I } /** - * 查找指定对象中的所有方法(包括非public方法),也包括父对象和Object类的方法 + * 查找指定对象中的所有方法(包括非public方法),也包括父对象和Object类的方法 * - * @param obj 被查找的对象,如果为{@code null}返回{@code null} - * @param methodName 方法名,如果为空字符串返回{@code null} + * @param obj 被查找的对象,如果为{@code null}返回{@code null} + * @param methodName 方法名,如果为空字符串返回{@code null} * @param args 参数 * @return 方法 * @throws SecurityException 无访问权限抛出异常 @@ -578,11 +578,11 @@ public static Method getMethodOfObj(Object obj, String methodName, Object... arg } /** - * 忽略大小写查找指定方法,如果找不到对应的方法则返回null + * 忽略大小写查找指定方法,如果找不到对应的方法则返回null * - * @param clazz 类,如果为{@code null}返回{@code null} - * @param methodName 方法名,如果为空字符串返回{@code null} - * @param paramTypes 参数类型,指定参数类型如果是方法的子类也算 + * @param clazz 类,如果为{@code null}返回{@code null} + * @param methodName 方法名,如果为空字符串返回{@code null} + * @param paramTypes 参数类型,指定参数类型如果是方法的子类也算 * @return 方法 * @throws SecurityException 无权访问抛出异常 * @since 5.2.2 @@ -594,9 +594,9 @@ public static Method getMethodIgnoreCase(Class clazz, String methodName, Clas /** * 查找指定方法 如果找不到对应的方法则返回null * - * @param clazz 类,如果为{@code null}返回{@code null} - * @param methodName 方法名,如果为空字符串返回{@code null} - * @param paramTypes 参数类型,指定参数类型如果是方法的子类也算 + * @param clazz 类,如果为{@code null}返回{@code null} + * @param methodName 方法名,如果为空字符串返回{@code null} + * @param paramTypes 参数类型,指定参数类型如果是方法的子类也算 * @return 方法 * @throws SecurityException 无权访问抛出异常 */ @@ -607,10 +607,10 @@ public static Method getMethod(Class clazz, String methodName, Class... pa /** * 查找指定方法 如果找不到对应的方法则返回null * - * @param clazz 类,如果为{@code null}返回{@code null} + * @param clazz 类,如果为{@code null}返回{@code null} * @param ignoreCase 是否忽略大小写 - * @param methodName 方法名,如果为空字符串返回{@code null} - * @param paramTypes 参数类型,指定参数类型如果是方法的子类也算 + * @param methodName 方法名,如果为空字符串返回{@code null} + * @param paramTypes 参数类型,指定参数类型如果是方法的子类也算 * @return 方法 * @throws SecurityException 无权访问抛出异常 * @since 5.2.2 @@ -678,7 +678,7 @@ public static Method[] getMethods(Class clazz, Filter filter) throws } /** - * 获得一个类中所有方法列表,包括其父类中的方法 + * 获得一个类中所有方法列表,包括其父类中的方法 * * @param beanClass 类 * @return 方法列表 @@ -695,7 +695,7 @@ public static Method[] getMethods(Class beanClass) throws SecurityException { } /** - * 获得一个类中所有方法列表,直接反射获取,无缓存 + * 获得一个类中所有方法列表,直接反射获取,无缓存 * * @param beanClass 类 * @param withSuperClassMethods 是否包括父类的方法列表 @@ -803,7 +803,7 @@ public static T newInstance(Class clazz, Object... params) throws Instrum } /** - * 尝试遍历并调用此类的所有构造方法,直到构造成功并返回 + * 尝试遍历并调用此类的所有构造方法,直到构造成功并返回 * * @param 对象类型 * @param beanClass 被构造的类 @@ -854,11 +854,11 @@ public static T invokeStatic(Method method, Object... args) throws Instrumen * *

          * 1. 参数个数是否与方法参数个数一致
    -     * 2. 如果某个参数为null但是方法这个位置的参数为原始类型,则赋予原始类型默认值
    +     * 2. 如果某个参数为null但是方法这个位置的参数为原始类型,则赋予原始类型默认值
          * 
    * * @param 返回对象类型 - * @param obj 对象,如果执行静态方法,此值为null + * @param obj 对象,如果执行静态方法,此值为null * @param method 方法(对象方法或static方法都可) * @param args 参数对象 * @return 结果 @@ -872,7 +872,7 @@ public static T invokeWithCheck(Object obj, Method method, Object... args) t for (int i = 0; i < args.length; i++) { type = types[i]; if (type.isPrimitive() && null == args[i]) { - // 参数是原始类型,而传入参数为null时赋予默认值 + // 参数是原始类型,而传入参数为null时赋予默认值 args[i] = ClassUtils.getDefaultValue(type); } } @@ -885,7 +885,7 @@ public static T invokeWithCheck(Object obj, Method method, Object... args) t * 执行方法 * * @param 返回对象类型 - * @param obj 对象,如果执行静态方法,此值为null + * @param obj 对象,如果执行静态方法,此值为null * @param method 方法(对象方法或static方法都可) * @param args 参数对象 * @return 结果 @@ -946,8 +946,8 @@ public static String getSetMethodName(String fieldName) { /** * 设置方法为可访问(私有方法可以被外部调用) * - * @param AccessibleObject的子类,比如Class、Method、Field等 - * @param accessibleObject 可设置访问权限的对象,比如Class、Method、Field等 + * @param AccessibleObject的子类,比如Class、Method、Field等 + * @param accessibleObject 可设置访问权限的对象,比如Class、Method、Field等 * @return 被设置可访问的对象 */ public static T setAccessible(T accessibleObject) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/ResourceUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/ResourceUtils.java index 85046a83c8..f4b288e4d6 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/ResourceUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/ResourceUtils.java @@ -46,9 +46,9 @@ public class ResourceUtils { /** - * 读取Classpath下的资源为字符串,使用UTF-8编码 + * 读取Classpath下的资源为字符串,使用UTF-8编码 * - * @param resource 资源路径,使用相对ClassPath的路径 + * @param resource 资源路径,使用相对ClassPath的路径 * @return 资源内容 * @since 3.1.1 */ @@ -59,7 +59,7 @@ public static String readUtf8Str(String resource) { /** * 读取Classpath下的资源为字符串 * - * @param resource 资源路径,使用相对ClassPath的路径 + * @param resource 资源路径,使用相对ClassPath的路径 * @param charset 编码 * @return 资源内容 * @since 3.1.1 @@ -81,7 +81,7 @@ public static InputStream getStream(String resurce) throws InstrumentException { } /** - * 从ClassPath资源中获取{@link InputStream},当资源不存在时返回null + * 从ClassPath资源中获取{@link InputStream},当资源不存在时返回null * * @param resurce ClassPath资源 * @return {@link InputStream} @@ -109,7 +109,7 @@ public static BufferedReader getReader(String resurce, Charset charset) { /** * 获得资源的URL - * 路径用/分隔,例如: + * 路径用/分隔,例如: * *
          * config/a/db.config
    @@ -125,7 +125,7 @@ public static URL getResource(String resource) throws InstrumentException {
     
         /**
          * 获取指定路径下的资源列表
    -     * 路径格式必须为目录格式,用/分隔,例如:
    +     * 路径格式必须为目录格式,用/分隔,例如:
          *
          * 
          * config/a
    @@ -147,7 +147,7 @@ public static List getResources(String resource) {
     
         /**
          * 获取指定路径下的资源Iterator
    -     * 路径格式必须为目录格式,用/分隔,例如:
    +     * 路径格式必须为目录格式,用/分隔,例如:
          *
          * 
          * config/a
    @@ -171,7 +171,7 @@ public static IterUtils.EnumerationIter getResourceIter(String resource) {
          * 获得资源相对路径对应的URL
          *
          * @param resource  资源相对路径
    -     * @param baseClass 基准Class,获得的相对路径相对于此Class所在路径,如果为{@code null}则相对ClassPath
    +     * @param baseClass 基准Class,获得的相对路径相对于此Class所在路径,如果为{@code null}则相对ClassPath
          * @return {@link URL}
          */
         public static URL getResource(String resource, Class baseClass) {
    @@ -180,9 +180,9 @@ public static URL getResource(String resource, Class baseClass) {
     
         /**
          * 获取{@link Resource} 资源对象
    -     * 如果提供路径为绝对路径,返回{@link FileResource},否则返回{@link ClassPathResource}
    +     * 如果提供路径为绝对路径,返回{@link FileResource},否则返回{@link ClassPathResource}
          *
    -     * @param path 路径,可以是绝对路径,也可以是相对路径
    +     * @param path 路径,可以是绝对路径,也可以是相对路径
          * @return {@link Resource} 资源对象
          * @since 5.2.2
          */
    diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/RuntimeUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/RuntimeUtils.java
    index fc7ca034b4..1577bdd9df 100755
    --- a/bus-core/src/main/java/org/aoju/bus/core/utils/RuntimeUtils.java
    +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/RuntimeUtils.java
    @@ -28,9 +28,9 @@
     public class RuntimeUtils {
     
         /**
    -     * 执行系统命令,使用系统默认编码
    +     * 执行系统命令,使用系统默认编码
          *
    -     * @param cmds 命令列表,每个元素代表一条命令
    +     * @param cmds 命令列表,每个元素代表一条命令
          * @return 执行结果
          * @throws InstrumentException IO异常
          */
    @@ -39,10 +39,10 @@ public static String execForStr(String... cmds) throws InstrumentException {
         }
     
         /**
    -     * 执行系统命令,使用系统默认编码
    +     * 执行系统命令,使用系统默认编码
          *
          * @param charset 编码
    -     * @param cmds    命令列表,每个元素代表一条命令
    +     * @param cmds    命令列表,每个元素代表一条命令
          * @return 执行结果
          * @throws InstrumentException 内部处理异常
          * @since 3.1.2
    @@ -52,10 +52,10 @@ public static String execForStr(Charset charset, String... cmds) throws Instrume
         }
     
         /**
    -     * 执行系统命令,使用系统默认编码
    +     * 执行系统命令,使用系统默认编码
          *
    -     * @param cmds 命令列表,每个元素代表一条命令
    -     * @return 执行结果,按行区分
    +     * @param cmds 命令列表,每个元素代表一条命令
    +     * @return 执行结果, 按行区分
          * @throws InstrumentException 内部处理异常
          */
         public static List execForLines(String... cmds) throws InstrumentException {
    @@ -63,11 +63,11 @@ public static List execForLines(String... cmds) throws InstrumentExcepti
         }
     
         /**
    -     * 执行系统命令,使用系统默认编码
    +     * 执行系统命令,使用系统默认编码
          *
          * @param charset 编码
    -     * @param cmds    命令列表,每个元素代表一条命令
    -     * @return 执行结果,按行区分
    +     * @param cmds    命令列表,每个元素代表一条命令
    +     * @return 执行结果, 按行区分
          * @throws InstrumentException 内部处理异常
          * @since 3.1.2
          */
    @@ -77,7 +77,7 @@ public static List execForLines(Charset charset, String... cmds) throws
     
         /**
          * 执行命令
    -     * 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入
    +     * 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入
          *
          * @param cmds 命令
          * @return {@link Process}
    @@ -106,9 +106,9 @@ public static Process exec(String... cmds) {
     
         /**
          * 执行命令
    -     * 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入
    +     * 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入
          *
    -     * @param envp 环境变量参数,传入形式为key=value,null表示继承系统环境变量
    +     * @param envp 环境变量参数,传入形式为key=value,null表示继承系统环境变量
          * @param cmds 命令
          * @return {@link Process}
          */
    @@ -118,10 +118,10 @@ public static Process exec(String[] envp, String... cmds) {
     
         /**
          * 执行命令
    -     * 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入
    +     * 命令带参数时参数可作为其中一个参数,也可以将命令和参数组合为一个字符串传入
          *
    -     * @param envp 环境变量参数,传入形式为key=value,null表示继承系统环境变量
    -     * @param dir  执行命令所在目录(用于相对路径命令执行),null表示使用当前进程执行的目录
    +     * @param envp 环境变量参数,传入形式为key=value,null表示继承系统环境变量
    +     * @param dir  执行命令所在目录(用于相对路径命令执行),null表示使用当前进程执行的目录
          * @param cmds 命令
          * @return {@link Process}
          */
    @@ -145,7 +145,7 @@ public static Process exec(String[] envp, File dir, String... cmds) {
         }
     
         /**
    -     * 获取命令执行结果,使用系统默认编码,获取后销毁进程
    +     * 获取命令执行结果,使用系统默认编码,获取后销毁进程
          *
          * @param process {@link Process} 进程
          * @return 命令执行结果列表
    @@ -155,7 +155,7 @@ public static List getResultLines(Process process) {
         }
     
         /**
    -     * 获取命令执行结果,使用系统默认编码,获取后销毁进程
    +     * 获取命令执行结果,使用系统默认编码,获取后销毁进程
          *
          * @param process {@link Process} 进程
          * @param charset 编码
    @@ -174,7 +174,7 @@ public static List getResultLines(Process process, Charset charset) {
         }
     
         /**
    -     * 获取命令执行结果,使用系统默认编码,,获取后销毁进程
    +     * 获取命令执行结果,使用系统默认编码,,获取后销毁进程
          *
          * @param process {@link Process} 进程
          * @return 命令执行结果列表
    @@ -185,7 +185,7 @@ public static String getResult(Process process) {
         }
     
         /**
    -     * 获取命令执行结果,获取后销毁进程
    +     * 获取命令执行结果,获取后销毁进程
          *
          * @param process {@link Process} 进程
          * @param charset 编码
    @@ -204,7 +204,7 @@ public static String getResult(Process process, Charset charset) {
         }
     
         /**
    -     * 获取命令执行异常结果,使用系统默认编码,,获取后销毁进程
    +     * 获取命令执行异常结果,使用系统默认编码,,获取后销毁进程
          *
          * @param process {@link Process} 进程
          * @return 命令执行结果列表
    @@ -214,7 +214,7 @@ public static String getErrorResult(Process process) {
         }
     
         /**
    -     * 获取命令执行异常结果,获取后销毁进程
    +     * 获取命令执行异常结果,获取后销毁进程
          *
          * @param process {@link Process} 进程
          * @param charset 编码
    @@ -244,7 +244,7 @@ public static void destroy(Process process) {
         }
     
         /**
    -     * 增加一个JVM关闭后的钩子,用于在JVM关闭时执行某些操作
    +     * 增加一个JVM关闭后的钩子,用于在JVM关闭时执行某些操作
          *
          * @param hook 钩子
          */
    @@ -253,7 +253,7 @@ public static void addShutdownHook(Runnable hook) {
         }
     
         /**
    -     * 获得完整消息,包括异常名,消息格式为:{SimpleClassName}: {ThrowableMessage}
    +     * 获得完整消息,包括异常名,消息格式为:{SimpleClassName}: {ThrowableMessage}
          *
          * @param e 异常
          * @return 完整消息
    @@ -266,7 +266,7 @@ public static String getMessage(Throwable e) {
         }
     
         /**
    -     * 获得消息,调用异常类的getMessage方法
    +     * 获得消息,调用异常类的getMessage方法
          *
          * @param e 异常
          * @return 消息
    @@ -308,7 +308,7 @@ public static  T wrap(Throwable throwable, Class wrapThr
     
         /**
          * 包装异常并重新抛出此异常
    -     * {@link RuntimeException} 和{@link Error} 直接抛出,其它检查异常包装为{@link UndeclaredThrowableException} 后抛出
    +     * {@link RuntimeException} 和{@link Error} 直接抛出,其它检查异常包装为{@link UndeclaredThrowableException} 后抛出
          *
          * @param throwable 异常
          */
    @@ -324,7 +324,7 @@ public static void wrapAndThrow(Throwable throwable) {
     
         /**
          * 剥离反射引发的InvocationTargetException、
    -     * UndeclaredThrowableException中间异常,返回业务本身的异常
    +     * UndeclaredThrowableException中间异常,返回业务本身的异常
          *
          * @param wrapped 包装的异常
          * @return 剥离后的异常
    @@ -554,10 +554,10 @@ public static  T convertFromOrSuppressedThrowable(Throwable
         }
     
         /**
    -     * 获取异常链上所有异常的集合,如果{@link Throwable} 对象没有cause,返回只有一个节点的List
    -     * 如果传入null,返回空集合
    +     * 获取异常链上所有异常的集合,如果{@link Throwable} 对象没有cause,返回只有一个节点的List
    +     * 如果传入null,返回空集合
          *
    -     * @param throwable 异常对象,可以为null
    +     * @param throwable 异常对象,可以为null
          * @return 异常链中所有异常集合
          */
         public static List getThrowableList(Throwable throwable) {
    @@ -570,12 +570,12 @@ public static List getThrowableList(Throwable throwable) {
         }
     
         /**
    -     * 获取异常链中最尾端的异常,即异常最早发生的异常对象。
    -     * 此方法通过调用{@link Throwable#getCause()} 直到没有cause为止,如果异常本身没有cause,返回异常本身
    +     * 获取异常链中最尾端的异常,即异常最早发生的异常对象
    +     * 此方法通过调用{@link Throwable#getCause()} 直到没有cause为止,如果异常本身没有cause,返回异常本身
          * 传入null返回也为null
          *
    -     * @param throwable 异常对象,可能为null
    -     * @return 最尾端异常,传入null参数返回也为null
    +     * @param throwable 异常对象,可能为null
    +     * @return 最尾端异常, 传入null参数返回也为null
          */
         public static Throwable getRootCause(final Throwable throwable) {
             final List list = getThrowableList(throwable);
    @@ -583,7 +583,7 @@ public static Throwable getRootCause(final Throwable throwable) {
         }
     
         /**
    -     * 获取异常链中最尾端的异常的消息,
    +     * 获取异常链中最尾端的异常的消息,
          * 消息格式为:{SimpleClassName}: {ThrowableMessage}
          *
          * @param th 异常
    diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/StreamUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/StreamUtils.java
    index 409550e508..574f90f8c1 100755
    --- a/bus-core/src/main/java/org/aoju/bus/core/utils/StreamUtils.java
    +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/StreamUtils.java
    @@ -60,9 +60,9 @@ public static boolean equals(InputStream ina, InputStream inb) throws IOExceptio
         }
     
         /**
    -     * 将一段文本全部写入一个writer。
    +     * 将一段文本全部写入一个writer
          * 

    - * 注意,它并不会关闭输出流 + * 注意,它并不会关闭输出流 * * @param writer 操作器 * @param cs 文本 @@ -76,9 +76,9 @@ public static void write(Writer writer, CharSequence cs) throws IOException { } /** - * 将一段文本全部写入一个writer。 + * 将一段文本全部写入一个writer *

    - * 注意,它会关闭输出流 + * 注意,它会关闭输出流 * * @param writer 输出流 * @param cs 文本 @@ -94,9 +94,9 @@ public static void writeAndClose(Writer writer, CharSequence cs) { } /** - * 将输入流写入一个输出流。块大小为 8192 + * 将输入流写入一个输出流 块大小为 8192 *

    - * 注意,它并不会关闭输入/出流 + * 注意,它并不会关闭输入/出流 * * @param ops 输出流 * @param ins 输入流 @@ -108,9 +108,9 @@ public static long write(OutputStream ops, InputStream ins) throws IOException { } /** - * 将输入流写入一个输出流。 + * 将输入流写入一个输出流 *

    - * 注意,它并不会关闭输入/出流 + * 注意,它并不会关闭输入/出流 * * @param ops 输出流 * @param ins 输入流 @@ -129,11 +129,11 @@ public static long write(OutputStream ops, InputStream ins, int bufferSize) thro bytesCount += len; ops.write(buf, 0, len); } - // 啥都没写,强制触发一下写 - // 这是考虑到 walnut 的输出流实现,比如你写一个空文件 - // 那么输入流就是空的,但是 walnut 的包裹输出流并不知道你写过了 - // 它人你就是打开一个输出流,然后再关上,所以自然不会对内容做改动 - // 所以这里触发一个写,它就知道,喔你要写个空喔。 + // 啥都没写,强制触发一下写 + // 这是考虑到 walnut 的输出流实现,比如你写一个空文件 + // 那么输入流就是空的,但是 walnut 的包裹输出流并不知道你写过了 + // 它人你就是打开一个输出流,然后再关上,所以自然不会对内容做改动 + // 所以这里触发一个写,它就知道,喔你要写个空喔 if (0 == bytesCount) { ops.write(buf, 0, 0); } @@ -142,9 +142,9 @@ public static long write(OutputStream ops, InputStream ins, int bufferSize) thro } /** - * 将输入流写入一个输出流。块大小为 8192 + * 将输入流写入一个输出流 块大小为 8192 *

    - * 注意,它会关闭输入/出流 + * 注意,它会关闭输入/出流 * * @param ops 输出流 * @param ins 输入流 @@ -162,9 +162,9 @@ public static long writeAndClose(OutputStream ops, InputStream ins) { } /** - * 将文本输入流写入一个文本输出流。块大小为 8192 + * 将文本输入流写入一个文本输出流 块大小为 8192 *

    - * 注意,它并不会关闭输入/出流 + * 注意,它并不会关闭输入/出流 * * @param writer 输出流 * @param reader 输入流 @@ -188,9 +188,9 @@ public static long write(Writer writer, Reader reader) throws IOException { } /** - * 将文本输入流写入一个文本输出流。块大小为 8192 + * 将文本输入流写入一个文本输出流 块大小为 8192 *

    - * 注意,它会关闭输入/出流 + * 注意,它会关闭输入/出流 * * @param writer 输出流 * @param reader 输入流 @@ -208,9 +208,9 @@ public static long writeAndClose(Writer writer, Reader reader) { } /** - * 将一个字节数组写入一个输出流。 + * 将一个字节数组写入一个输出流 *

    - * 注意,它并不会关闭输出流 + * 注意,它并不会关闭输出流 * * @param ops 输出流 * @param bytes 字节数组 @@ -223,9 +223,9 @@ public static void write(OutputStream ops, byte[] bytes) throws IOException { } /** - * 将一个字节数组写入一个输出流。 + * 将一个字节数组写入一个输出流 *

    - * 注意,它会关闭输出流 + * 注意,它会关闭输出流 * * @param ops 输出流 * @param bytes 字节数组 @@ -243,7 +243,7 @@ public static void writeAndClose(OutputStream ops, byte[] bytes) { /** * 从一个文本流中读取全部内容并返回 *

    - * 注意,它并不会关闭输出流 + * 注意,它并不会关闭输出流 * * @param reader 文本输出流 * @return 文本内容 @@ -291,7 +291,7 @@ public static int read(Reader reader, StringBuilder sb) throws IOException { } /** - * 从一个文本输入流读取所有内容,并将该流关闭 + * 从一个文本输入流读取所有内容,并将该流关闭 * * @param reader 文本输入流 * @return 输入流所有内容 @@ -320,7 +320,7 @@ public static String readAll(Reader reader) { /** * 从一个文本流中读取全部内容并写入缓冲 *

    - * 注意,它会关闭输出流 + * 注意,它会关闭输出流 * * @param reader 文本输出流 * @param sb 输出的文本缓冲 @@ -339,7 +339,7 @@ public static int readAndClose(InputStreamReader reader, StringBuilder sb) { /** * 读取一个输入流中所有的字节 * - * @param ins 输入流,必须支持 available() + * @param ins 输入流,必须支持 available() * @return 一个字节数组 * @throws IOException 异常 */ @@ -350,9 +350,9 @@ public static byte[] readBytes(InputStream ins) throws IOException { } /** - * 读取一个输入流中所有的字节,并关闭输入流 + * 读取一个输入流中所有的字节,并关闭输入流 * - * @param ins 输入流,必须支持 available() + * @param ins 输入流,必须支持 available() * @return 一个字节数组 */ public static byte[] readBytesAndClose(InputStream ins) { @@ -368,7 +368,7 @@ public static byte[] readBytesAndClose(InputStream ins) { } /** - * 关闭一个可关闭对象,可以接受 null。如果成功关闭,返回 true,发生异常 返回 false + * 关闭一个可关闭对象,可以接受 null 如果成功关闭,返回 true,发生异常 返回 false * * @param cb 可关闭对象 * @return 是否成功关闭 @@ -384,7 +384,7 @@ public static boolean safeClose(Closeable cb) { } /** - * 安全刷新一个可刷新的对象,可接受 null + * 安全刷新一个可刷新的对象,可接受 null * * @param fa 可刷新对象 */ @@ -397,9 +397,9 @@ public static void safeFlush(Flushable fa) { } /** - * 为一个输入流包裹一个缓冲流。如果这个输入流本身就是缓冲流,则直接返回 + * 为一个输入流包裹一个缓冲流 如果这个输入流本身就是缓冲流,则直接返回 * - * @param ins 输入流。 + * @param ins 输入流 * @return 缓冲输入流 */ public static BufferedInputStream buff(InputStream ins) { @@ -412,9 +412,9 @@ public static BufferedInputStream buff(InputStream ins) { } /** - * 为一个输出流包裹一个缓冲流。如果这个输出流本身就是缓冲流,则直接返回 + * 为一个输出流包裹一个缓冲流 如果这个输出流本身就是缓冲流,则直接返回 * - * @param ops 输出流。 + * @param ops 输出流 * @return 缓冲输出流 */ public static BufferedOutputStream buff(OutputStream ops) { @@ -426,9 +426,9 @@ public static BufferedOutputStream buff(OutputStream ops) { } /** - * 为一个文本输入流包裹一个缓冲流。如果这个输入流本身就是缓冲流,则直接返回 + * 为一个文本输入流包裹一个缓冲流 如果这个输入流本身就是缓冲流,则直接返回 * - * @param reader 文本输入流。 + * @param reader 文本输入流 * @return 缓冲文本输入流 */ public static BufferedReader buffr(Reader reader) { @@ -438,9 +438,9 @@ public static BufferedReader buffr(Reader reader) { } /** - * 为一个文本输出流包裹一个缓冲流。如果这个文本输出流本身就是缓冲流,则直接返回 + * 为一个文本输出流包裹一个缓冲流 如果这个文本输出流本身就是缓冲流,则直接返回 * - * @param ops 文本输出流。 + * @param ops 文本输出流 * @return 缓冲文本输出流 */ public static BufferedWriter buffw(Writer ops) { @@ -453,7 +453,7 @@ public static BufferedWriter buffw(Writer ops) { * 获取输出流 * * @param path 文件路径 - * @param klass 参考的类, -- 会用这个类的 ClassLoader + * @param klass 参考的类, -- 会用这个类的 ClassLoader * @param enc 文件路径编码 * @return 输出流 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/StringUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/StringUtils.java index cab6191344..ec3e4726b8 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/StringUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/StringUtils.java @@ -91,7 +91,7 @@ public static String trim(String str) { } /** - * 重写toString方法,处理了空指针问题 + * 重写toString方法,处理了空指针问题 * (默认如果对象为null则替换成"") * * @param obj String类型的Object对象 @@ -102,10 +102,10 @@ public static String toString(Object obj) { } /** - * 重写toString方法,处理了空指针问题 + * 重写toString方法,处理了空指针问题 * * @param obj String类型的Object对象 - * @param defaultValue 如果obj是null,则以defaultValue的值返回 + * @param defaultValue 如果obj是null,则以defaultValue的值返回 * @return 转换后的字符串 */ public static String toString(Object obj, String defaultValue) { @@ -273,11 +273,11 @@ public static String toBase64(String oldStr, String charset) { * @return string */ public static String byteArrayToHex(byte[] byteArray) { - // 首先初始化一个字符数组,用来存放每个16进制字符 + // 首先初始化一个字符数组,用来存放每个16进制字符 char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; - // new一个字符数组,这个就是用来组成结果字符串的(解释一下:一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方)) + // new一个字符数组,这个就是用来组成结果字符串的(解释一下:一个byte是八位二进制,也就是2位十六进制字符(2的8次方等于16的2次方)) char[] resultCharArray = new char[byteArray.length * 2]; - // 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去 + // 遍历字节数组,通过位运算(位运算效率高),转换成字符放到字符数组中去 int index = 0; for (byte b : byteArray) { resultCharArray[index++] = hexDigits[b >>> 4 & 0xf]; @@ -289,7 +289,7 @@ public static String byteArrayToHex(byte[] byteArray) { /** * bytes字符串转换为Byte值 - * src Byte字符串,每个Byte之间没有分隔符 + * src Byte字符串,每个Byte之间没有分隔符 * * @param hex 字符串 * @return byte[] @@ -384,7 +384,7 @@ public static String toFullString(String input) { public static String toHalfString(String input) { char[] c = input.toCharArray(); for (int i = 0; i < c.length; i++) { - // 是否是中文空格, 单独处理 + // 是否是中文空格, 单独处理 if (c[i] == '\u3000') { c[i] = ' '; } @@ -490,12 +490,12 @@ public static String unicodeToString(String unicode, boolean isSkipAscii) { sb.append(c); pos = i + 6;//跳过整个Unicode符 } catch (NumberFormatException e) { - //非法Unicode符,跳过 + //非法Unicode符,跳过 sb.append(unicode, pos, i + 2);//写入"\\u" pos = i + 2; } } else { - pos = i;//非Unicode符,结束 + pos = i;//非Unicode符,结束 break; } } @@ -936,7 +936,7 @@ public static String substringBetween(String str, String open, String close) { } /** - * 比较两个字符串(大小写敏感)。 + * 比较两个字符串(大小写敏感) * *

          * equals(null, null)   = true
    @@ -948,14 +948,14 @@ public static String substringBetween(String str, String open, String close) {
          *
          * @param str1 要比较的字符串1
          * @param str2 要比较的字符串2
    -     * @return 如果两个字符串相同,或者都是null,则返回true
    +     * @return 如果两个字符串相同, 或者都是null, 则返回true
          */
         public static boolean equals(CharSequence str1, CharSequence str2) {
             return equals(str1, str2, false);
         }
     
         /**
    -     * 比较两个字符串(大小写不敏感)。
    +     * 比较两个字符串(大小写不敏感)
          *
          * 
          * equalsIgnoreCase(null, null)   = true
    @@ -967,19 +967,19 @@ public static boolean equals(CharSequence str1, CharSequence str2) {
          *
          * @param str1 要比较的字符串1
          * @param str2 要比较的字符串2
    -     * @return 如果两个字符串相同,或者都是null,则返回true
    +     * @return 如果两个字符串相同, 或者都是null, 则返回true
          */
         public static boolean equalsIgnoreCase(CharSequence str1, CharSequence str2) {
             return equals(str1, str2, true);
         }
     
         /**
    -     * 比较两个字符串是否相等。
    +     * 比较两个字符串是否相等
          *
          * @param str1       要比较的字符串1
          * @param str2       要比较的字符串2
          * @param ignoreCase 是否忽略大小写
    -     * @return 如果两个字符串相同,或者都是null,则返回true
    +     * @return 如果两个字符串相同, 或者都是null, 则返回true
          * @since 5.2.2
          */
         public static boolean equals(CharSequence str1, CharSequence str2, boolean ignoreCase) {
    @@ -988,7 +988,7 @@ public static boolean equals(CharSequence str1, CharSequence str2, boolean ignor
                 return str2 == null;
             }
             if (null == str2) {
    -            // 字符串2空,字符串1非空,直接false
    +            // 字符串2空,字符串1非空,直接false
                 return false;
             }
     
    @@ -1002,7 +1002,7 @@ public static boolean equals(CharSequence str1, CharSequence str2, boolean ignor
         /**
          * 格式化字符串
          * 此方法只是简单将占位符 {} 按照顺序替换为参数
    -     * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
    +     * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
          * 例:
          * 通常使用:format("this is {} for {}", "a", "b") =》 this is a for b
          * 转义{}: 	format("this is \\{} for {}", "a", "b") =》 this is \{} for a
    @@ -1028,14 +1028,14 @@ public static String format(final String val, final Object... argArray) {
                 if (delimIndex == -1) {//剩余部分无占位符
                     if (handledPosition == 0) { //不带占位符的模板直接返回
                         return val;
    -                } else { //字符串模板剩余部分不再包含占位符,加入剩余部分后返回结果
    +                } else { //字符串模板剩余部分不再包含占位符,加入剩余部分后返回结果
                         sbuf.append(val, handledPosition, strPatternLength);
                         return sbuf.toString();
                     }
                 } else {
                     if (delimIndex > 0 && val.charAt(delimIndex - 1) == Symbol.C_BACKSLASH) {//转义符
                         if (delimIndex > 1 && val.charAt(delimIndex - 2) == Symbol.C_BACKSLASH) {//双转义符
    -                        //转义符之前还有一个转义符,占位符依旧有效
    +                        //转义符之前还有一个转义符,占位符依旧有效
                             sbuf.append(val, handledPosition, delimIndex - 1);
                             sbuf.append(utf8Str(argArray[argIndex]));
                             handledPosition = delimIndex + 2;
    @@ -1127,7 +1127,7 @@ public static String str(byte[] bytes, String charset) {
          * 解码字节码
          *
          * @param data    字符串
    -     * @param charset 字符集,如果此字段为空,则解码的结果取决于平台
    +     * @param charset 字符集,如果此字段为空,则解码的结果取决于平台
          * @return 解码后的字符串
          */
         public static String str(byte[] data, Charset charset) {
    @@ -1156,7 +1156,7 @@ public static String str(Byte[] bytes, String charset) {
          * 解码字节码
          *
          * @param data    字符串
    -     * @param charset 字符集,如果此字段为空,则解码的结果取决于平台
    +     * @param charset 字符集,如果此字段为空,则解码的结果取决于平台
          * @return 解码后的字符串
          */
         public static String str(Byte[] data, Charset charset) {
    @@ -1178,7 +1178,7 @@ public static String str(Byte[] data, Charset charset) {
          * 将编码的byteBuffer数据转换为字符串
          *
          * @param data    数据
    -     * @param charset 字符集,如果为空使用当前系统字符集
    +     * @param charset 字符集,如果为空使用当前系统字符集
          * @return 字符串
          */
         public static String str(ByteBuffer data, String charset) {
    @@ -1193,7 +1193,7 @@ public static String str(ByteBuffer data, String charset) {
          * 将编码的byteBuffer数据转换为字符串
          *
          * @param data    数据
    -     * @param charset 字符集,如果为空使用当前系统字符集
    +     * @param charset 字符集,如果为空使用当前系统字符集
          * @return 字符串
          */
         public static String str(ByteBuffer data, Charset charset) {
    @@ -1204,7 +1204,7 @@ public static String str(ByteBuffer data, Charset charset) {
         }
     
         /**
    -     * {@link CharSequence} 转为字符串,null安全
    +     * {@link CharSequence} 转为字符串,null安全
          *
          * @param cs {@link CharSequence}
          * @return 字符串
    @@ -1240,10 +1240,10 @@ public static String subSuf(CharSequence string, int fromIndex) {
     
         /**
          * 改进JDK subString
    -     * index从0开始计算,最后一个字符为-1
    -     * 如果from和to位置一样,返回 ""
    -     * 如果from或to为负数,则按照length从后向前数位置,如果绝对值大于字符串长度,则from归到0,to归到length
    -     * 如果经过修正的index中from大于to,则互换
    +     * index从0开始计算,最后一个字符为-1
    +     * 如果from和to位置一样,返回 ""
    +     * 如果from或to为负数,则按照length从后向前数位置,如果绝对值大于字符串长度,则from归到0,to归到length
    +     * 如果经过修正的index中from大于to,则互换
          * abcdefgh 2 3 =》 c
          * abcdefgh 2 -3 =》 cde
          *
    @@ -1290,7 +1290,7 @@ public static String sub(CharSequence str, int fromIndex, int toIndex) {
         }
     
         /**
    -     * 切分字符串路径,仅支持Unix分界符:/
    +     * 切分字符串路径,仅支持Unix分界符:/
          *
          * @param str 被切分的字符串
          * @return 切分后的集合
    @@ -1300,7 +1300,7 @@ public static List splitPath(String str) {
         }
     
         /**
    -     * 切分字符串路径,仅支持Unix分界符:/
    +     * 切分字符串路径,仅支持Unix分界符:/
          *
          * @param str   被切分的字符串
          * @param limit 限制分片数
    @@ -1311,7 +1311,7 @@ public static List splitPath(String str, int limit) {
         }
     
         /**
    -     * 切分字符串路径,仅支持Unix分界符:/
    +     * 切分字符串路径,仅支持Unix分界符:/
          *
          * @param str 被切分的字符串
          * @return 切分后的集合
    @@ -1321,7 +1321,7 @@ public static String[] splitPathToArray(String str) {
         }
     
         /**
    -     * 切分字符串路径,仅支持Unix分界符:/
    +     * 切分字符串路径,仅支持Unix分界符:/
          *
          * @param str   被切分的字符串
          * @param limit 限制分片数
    @@ -1332,7 +1332,7 @@ public static String[] splitPathToArray(String str, int limit) {
         }
     
         /**
    -     * 切分字符串,去除切分后每个元素两边的空白符,去除空白项
    +     * 切分字符串,去除切分后每个元素两边的空白符,去除空白项
          *
          * @param str       被切分的字符串
          * @param separator 分隔符字符
    @@ -1357,7 +1357,7 @@ public static List splitTrim(String str, char separator, boolean ignoreE
         }
     
         /**
    -     * 切分字符串,去除每个元素两边空格,忽略大小写
    +     * 切分字符串,去除每个元素两边空格,忽略大小写
          *
          * @param str         被切分的字符串
          * @param separator   分隔符字符串
    @@ -1370,11 +1370,11 @@ public static List splitTrim(String str, String separator, boolean ignor
         }
     
         /**
    -     * 切分字符串,大小写敏感,去除每个元素两边空白符
    +     * 切分字符串,大小写敏感,去除每个元素两边空白符
          *
          * @param str         被切分的字符串
          * @param separator   分隔符字符
    -     * @param limit       限制分片数,-1不限制
    +     * @param limit       限制分片数,-1不限制
          * @param ignoreEmpty 是否忽略空串
          * @return 切分后的集合
          */
    @@ -1383,7 +1383,7 @@ public static List splitTrim(String str, char separator, int limit, bool
         }
     
         /**
    -     * 切分字符串,去除每个元素两边空格,忽略大小写
    +     * 切分字符串,去除每个元素两边空格,忽略大小写
          *
          * @param str         被切分的字符串
          * @param separator   分隔符字符串
    @@ -1397,11 +1397,11 @@ public static List splitTrim(String str, String separator, int limit, bo
         }
     
         /**
    -     * 切分字符串,忽略大小写
    +     * 切分字符串,忽略大小写
          *
          * @param str         被切分的字符串
          * @param separator   分隔符字符
    -     * @param limit       限制分片数,-1不限制
    +     * @param limit       限制分片数,-1不限制
          * @param isTrim      是否去除切分字符串后每个元素两边的空格
          * @param ignoreEmpty 是否忽略空串
          * @return 切分后的集合
    @@ -1412,7 +1412,7 @@ public static List splitIgnoreCase(String str, char separator, int limit
         }
     
         /**
    -     * 切分字符串,忽略大小写
    +     * 切分字符串,忽略大小写
          *
          * @param str         被切分的字符串
          * @param separator   分隔符字符串
    @@ -1427,7 +1427,7 @@ public static List splitIgnoreCase(String str, String separator, int lim
         }
     
         /**
    -     * 切分字符串,去除每个元素两边空格,忽略大小写
    +     * 切分字符串,去除每个元素两边空格,忽略大小写
          *
          * @param str         被切分的字符串
          * @param separator   分隔符字符串
    @@ -1596,7 +1596,7 @@ public static String[] split(CharSequence str, CharSequence separator) {
         }
     
         /**
    -     * 切分字符串,去除切分后每个元素两边的空白符,去除空白项
    +     * 切分字符串,去除切分后每个元素两边的空白符,去除空白项
          *
          * @param str       被切分的字符串
          * @param separator 分隔符字符
    @@ -1622,7 +1622,7 @@ public static List split(CharSequence str, char separator) {
     
         /**
          * 使用空白符切分字符串
    -     * 切分后的字符串两边不包含空白符,空串或空白符串并不做为元素之一
    +     * 切分后的字符串两边不包含空白符,空串或空白符串并不做为元素之一
          *
          * @param str   被切分的字符串
          * @param limit 限制分片数
    @@ -1644,7 +1644,7 @@ public static List split(String str, int limit) {
                     addToList(list, str.substring(start, i), true, true);
                     start = i + 1;//i+1同时将start与i保持一致
     
    -                //检查是否超出范围(最大允许limit-1个,剩下一个留给末尾字符串)
    +                //检查是否超出范围(最大允许limit-1个,剩下一个留给末尾字符串)
                     if (limit > 0 && list.size() > limit - 2) {
                         break;
                     }
    @@ -1654,11 +1654,11 @@ public static List split(String str, int limit) {
         }
     
         /**
    -     * 切分字符串,不去除切分后每个元素两边的空白符,不去除空白项
    +     * 切分字符串,不去除切分后每个元素两边的空白符,不去除空白项
          *
          * @param str       被切分的字符串
          * @param separator 分隔符字符
    -     * @param limit     限制分片数,-1不限制
    +     * @param limit     限制分片数,-1不限制
          * @return 切分后的集合
          */
         public static List split(CharSequence str, char separator, int limit) {
    @@ -1679,7 +1679,7 @@ public static List split(String str, char separator, boolean isTrim, boo
         }
     
         /**
    -     * 切分字符串,不忽略大小写
    +     * 切分字符串,不忽略大小写
          *
          * @param str         被切分的字符串
          * @param separator   分隔符字符串
    @@ -1692,11 +1692,11 @@ public static List split(String str, String separator, boolean isTrim, b
         }
     
         /**
    -     * 切分字符串,大小写敏感
    +     * 切分字符串,大小写敏感
          *
          * @param str         被切分的字符串
          * @param separator   分隔符字符
    -     * @param limit       限制分片数,-1不限制
    +     * @param limit       限制分片数,-1不限制
          * @param isTrim      是否去除切分字符串后每个元素两边的空格
          * @param ignoreEmpty 是否忽略空串
          * @return 切分后的集合
    @@ -1707,7 +1707,7 @@ public static List split(String str, char separator, int limit, boolean
     
     
         /**
    -     * 切分字符串,不忽略大小写
    +     * 切分字符串,不忽略大小写
          *
          * @param str         被切分的字符串
          * @param separator   分隔符字符串
    @@ -1762,7 +1762,7 @@ public static List split(String str, Pattern separatorPattern, int limit
          *
          * @param str         被切分的字符串
          * @param separator   分隔符字符
    -     * @param limit       限制分片数,-1不限制
    +     * @param limit       限制分片数,-1不限制
          * @param isTrim      是否去除切分字符串后每个元素两边的空格
          * @param ignoreEmpty 是否忽略空串
          * @param ignoreCase  是否忽略大小写
    @@ -1785,7 +1785,7 @@ public static List split(String str, char separator, int limit, boolean
                     addToList(list, str.substring(start, i), isTrim, ignoreEmpty);
                     start = i + 1;//i+1同时将start与i保持一致
     
    -                //检查是否超出范围(最大允许limit-1个,剩下一个留给末尾字符串)
    +                //检查是否超出范围(最大允许limit-1个,剩下一个留给末尾字符串)
                     if (limit > 0 && list.size() > limit - 2) {
                         break;
                     }
    @@ -1831,7 +1831,7 @@ public static List split(String str, String separator, int limit, boolea
                     addToList(list, str.substring(start, i), isTrim, ignoreEmpty);
                     start = i + separatorLen;
     
    -                //检查是否超出范围(最大允许limit-1个,剩下一个留给末尾字符串)
    +                //检查是否超出范围(最大允许limit-1个,剩下一个留给末尾字符串)
                     if (limit > 0 && list.size() > limit - 2) {
                         break;
                     }
    @@ -1875,11 +1875,11 @@ public static boolean contains(CharSequence str, char searchChar) {
         }
     
         /**
    -     * 除去字符串头尾部的空白符,如果字符串是null,依然返回null。
    +     * 除去字符串头尾部的空白符,如果字符串是null,依然返回null
          *
          * @param str  要处理的字符串
    -     * @param mode -1表示trimStart,0表示trim全部, 1表示trimEnd
    -     * @return 除去指定字符后的的字符串,如果原字串为null,则返回null
    +     * @param mode -1表示trimStart,0表示trim全部, 1表示trimEnd
    +     * @return 除去指定字符后的的字符串, 如果原字串为null, 则返回null
          */
         public static String trim(CharSequence str, int mode) {
             if (str == null) {
    @@ -1924,7 +1924,7 @@ public static boolean startWith(CharSequence str, char c) {
     
         /**
          * 是否以指定字符串开头
    -     * 如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false
    +     * 如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false
          *
          * @param str          被监测字符串
          * @param prefix       开头字符串
    @@ -1955,7 +1955,7 @@ public static boolean startWith(CharSequence str, CharSequence prefix) {
         }
     
         /**
    -     * 是否以指定字符串开头,忽略大小写
    +     * 是否以指定字符串开头,忽略大小写
          *
          * @param str    被监测字符串
          * @param prefix 开头字符串
    @@ -2001,7 +2001,7 @@ public static int indexOf(final CharSequence str, char searchChar) {
          *
          * @param str        字符串
          * @param searchChar 被查找的字符
    -     * @param start      起始位置,如果小于0,从0开始查找
    +     * @param start      起始位置,如果小于0,从0开始查找
          * @return 位置
          */
         public static int indexOf(final CharSequence str, char searchChar, int start) {
    @@ -2017,8 +2017,8 @@ public static int indexOf(final CharSequence str, char searchChar, int start) {
          *
          * @param str        字符串
          * @param searchChar 被查找的字符
    -     * @param start      起始位置,如果小于0,从0开始查找
    -     * @param end        终止位置,如果超过str.length()则默认查找到字符串末尾
    +     * @param start      起始位置,如果小于0,从0开始查找
    +     * @param end        终止位置,如果超过str.length()则默认查找到字符串末尾
          * @return 位置
          */
         public static int indexOf(final CharSequence str, char searchChar, int start, int end) {
    @@ -2038,7 +2038,7 @@ public static int indexOf(final CharSequence str, char searchChar, int start, in
         }
     
         /**
    -     * 指定范围内查找字符串,忽略大小写
    +     * 指定范围内查找字符串,忽略大小写
          *
          * 
          * StringUtils.indexOfIgnoreCase(null, *, *)          = -1
    @@ -2130,7 +2130,7 @@ public static int indexOf(final CharSequence str, CharSequence searchStr, int fr
         }
     
         /**
    -     * 指定范围内查找字符串,忽略大小写
    +     * 指定范围内查找字符串,忽略大小写
          *
          * @param str       字符串
          * @param searchStr 需要查找位置的字符串
    @@ -2142,11 +2142,11 @@ public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequen
         }
     
         /**
    -     * 指定范围内查找字符串,忽略大小写
    +     * 指定范围内查找字符串,忽略大小写
          *
          * @param str       字符串
          * @param searchStr 需要查找位置的字符串
    -     * @param fromIndex 起始位置,从后往前计数
    +     * @param fromIndex 起始位置,从后往前计数
          * @return 位置
          * @since 5.2.2
          */
    @@ -2159,7 +2159,7 @@ public static int lastIndexOfIgnoreCase(final CharSequence str, final CharSequen
          *
          * @param str        字符串
          * @param searchStr  需要查找位置的字符串
    -     * @param fromIndex  起始位置,从后往前计数
    +     * @param fromIndex  起始位置,从后往前计数
          * @param ignoreCase 是否忽略大小写
          * @return 位置
          * @since 5.2.2
    @@ -2191,7 +2191,7 @@ public static int lastIndexOf(final CharSequence str, final CharSequence searchS
         }
     
         /**
    -     * 返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。
    +     * 返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置
          * 如果 str=null 或 searchStr=null 或 ordinal小于等于0 则返回-1
          *
          * 
    @@ -2208,8 +2208,8 @@ public static int lastIndexOf(final CharSequence str, final CharSequence searchS
          * StringUtils.ordinalIndexOf("aabaabaa", "", 2)   = 0
          * 
    * - * @param str 被检查的字符串,可以为null - * @param searchStr 被查找的字符串,可以为null + * @param str 被检查的字符串,可以为null + * @param searchStr 被查找的字符串,可以为null * @param ordinal 第几次出现的位置 * @return 查找到的位置 * @since 3.2.3 @@ -2234,7 +2234,7 @@ public static int ordinalIndexOf(String str, String searchStr, int ordinal) { } /** - * 截取两个字符串的不同部分(长度一致),判断截取的子串是否相同 + * 截取两个字符串的不同部分(长度一致),判断截取的子串是否相同 * 任意一个字符串为null返回false * * @param str1 第一个字符串 @@ -2277,7 +2277,7 @@ public static boolean hasBlank(CharSequence... strs) { * 重复某个字符 * * @param c 被重复的字符 - * @param count 重复的数目,如果小于等于0则返回"" + * @param count 重复的数目,如果小于等于0则返回"" * @return 重复字符字符串 */ public static String repeat(char c, int count) { @@ -2357,7 +2357,7 @@ public static byte[] bytes(CharSequence str) { * 编码字符串 * * @param str 字符串 - * @param charset 字符集,如果此字段为空,则解码的结果取决于平台 + * @param charset 字符集,如果此字段为空,则解码的结果取决于平台 * @return 编码后的字节码 */ public static byte[] bytes(CharSequence str, String charset) { @@ -2368,7 +2368,7 @@ public static byte[] bytes(CharSequence str, String charset) { * 编码字符串 * * @param str 字符串 - * @param charset 字符集,如果此字段为空,则解码的结果取决于平台 + * @param charset 字符集,如果此字段为空,则解码的结果取决于平台 * @return 编码后的字节码 */ public static byte[] bytes(CharSequence str, Charset charset) { @@ -2383,7 +2383,7 @@ public static byte[] bytes(CharSequence str, Charset charset) { } /** - * 将驼峰式命名的字符串转换为下划线方式。如果转换前的驼峰式命名的字符串为空,则返回空字符串。 + * 将驼峰式命名的字符串转换为下划线方式 如果转换前的驼峰式命名的字符串为空,则返回空字符串 * 例如:HelloWorld=》hello_world * * @param camelCaseStr 转换前的驼峰式命名的字符串 @@ -2421,7 +2421,7 @@ public static String toUnderlineCase(CharSequence camelCaseStr) { /** * 删除指定字符串 - * 是否在开始位置,否则返回源字符串 + * 是否在开始位置,否则返回源字符串 * A {@code null} source string will return {@code null}. * An empty ("") source string will return the empty string. * A {@code null} search string will return the source string. @@ -2458,7 +2458,7 @@ public static String removeStart(final String str, final String remove) { * * @param str 被处理的字符串 * @param preLength 去掉的长度 - * @return 处理后的字符串,不符合规范返回null + * @return 处理后的字符串, 不符合规范返回null */ public static String removePreAndLowerFirst(CharSequence str, int preLength) { if (str == null) { @@ -2481,7 +2481,7 @@ public static String removePreAndLowerFirst(CharSequence str, int preLength) { * * @param str 被处理的字符串 * @param prefix 前缀 - * @return 处理后的字符串,不符合规范返回null + * @return 处理后的字符串, 不符合规范返回null */ public static String removePreAndLowerFirst(CharSequence str, CharSequence prefix) { return lowerFirst(removePrefix(str, prefix)); @@ -2493,7 +2493,7 @@ public static String removePreAndLowerFirst(CharSequence str, CharSequence prefi * * @param str 字符串 * @param prefix 前缀 - * @return 切掉后的字符串,若前缀不是 preffix, 返回原字符串 + * @return 切掉后的字符串, 若前缀不是 preffix, 返回原字符串 */ public static String removePrefix(CharSequence str, CharSequence prefix) { if (isEmpty(str) || isEmpty(prefix)) { @@ -2512,7 +2512,7 @@ public static String removePrefix(CharSequence str, CharSequence prefix) { * * @param str 字符串 * @param prefix 前缀 - * @return 切掉后的字符串,若前缀不是 prefix, 返回原字符串 + * @return 切掉后的字符串, 若前缀不是 prefix, 返回原字符串 */ public static String removePrefixIgnoreCase(CharSequence str, CharSequence prefix) { if (isEmpty(str) || isEmpty(prefix)) { @@ -2531,7 +2531,7 @@ public static String removePrefixIgnoreCase(CharSequence str, CharSequence prefi * * @param str 字符串 * @param suffix 后缀 - * @return 切掉后的字符串,若后缀不是 suffix, 返回原字符串 + * @return 切掉后的字符串, 若后缀不是 suffix, 返回原字符串 */ public static String removeSuffix(CharSequence str, CharSequence suffix) { if (isEmpty(str) || isEmpty(suffix)) { @@ -2670,7 +2670,7 @@ public static String substringAfterLast(final String str, final String separator } /** - * 将下划线方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 + * 将下划线方式命名的字符串转换为驼峰式 如果转换前的下划线大写方式命名的字符串为空,则返回空字符串 * 例如:hello_world=》helloWorld * * @param name 转换前的下划线大写方式命名的字符串 @@ -2704,7 +2704,7 @@ public static String toCamelCase(CharSequence name) { } /** - * 当给定字符串为null时,转换为Empty + * 当给定字符串为null时,转换为Empty * * @param str 被转换的字符串 * @return 转换后的字符串 @@ -2714,7 +2714,7 @@ public static String nullToEmpty(CharSequence str) { } /** - * 如果字符串是null,则返回指定默认字符串,否则返回字符串本身。 + * 如果字符串是null,则返回指定默认字符串,否则返回字符串本身 * *
          * nullToDefault(null, "default")  = "default"
    @@ -3396,7 +3396,7 @@ public static String replaceChars(final String str, final String searchChars, St
         }
     
         /**
    -     * 替换字符串中的指定字符串,忽略大小写
    +     * 替换字符串中的指定字符串,忽略大小写
          *
          * @param str         字符串
          * @param searchStr   被查找的字符串
    @@ -3500,7 +3500,7 @@ public static String replace(CharSequence str, int startInclude, int endExclude,
                 endExclude = strLength;
             }
             if (startInclude > endExclude) {
    -            // 如果起始位置大于结束位置,不替换
    +            // 如果起始位置大于结束位置,不替换
                 return str(str);
             }
     
    @@ -3529,10 +3529,10 @@ public static String hide(CharSequence str, int startInclude, int endExclude) {
     
         /**
          * 替换字符字符数组中所有的字符为replacedStr
    -     * 提供的chars为所有需要被替换的字符,例如:"\r\n",则"\r"和"\n"都会被替换,哪怕他们单独存在
    +     * 提供的chars为所有需要被替换的字符,例如:"\r\n",则"\r"和"\n"都会被替换,哪怕他们单独存在
          *
          * @param str         被检查的字符串
    -     * @param chars       需要替换的字符列表,用一个字符串表示这个字符列表
    +     * @param chars       需要替换的字符列表,用一个字符串表示这个字符列表
          * @param replacedStr 替换成的字符串
          * @return 新字符串
          * @since 5.2.2
    @@ -3650,7 +3650,7 @@ public static String[] wrapAll(CharSequence prefix, CharSequence suffix, CharSeq
         }
     
         /**
    -     * 去掉字符包装,如果未被包装则返回原字符串
    +     * 去掉字符包装,如果未被包装则返回原字符串
          *
          * @param str    字符串
          * @param prefix 前置字符串
    @@ -3665,7 +3665,7 @@ public static String unWrap(CharSequence str, String prefix, String suffix) {
         }
     
         /**
    -     * 去掉字符包装,如果未被包装则返回原字符串
    +     * 去掉字符包装,如果未被包装则返回原字符串
          *
          * @param str    字符串
          * @param prefix 前置字符
    @@ -3683,7 +3683,7 @@ public static String unWrap(CharSequence str, char prefix, char suffix) {
         }
     
         /**
    -     * 去掉字符包装,如果未被包装则返回原字符串
    +     * 去掉字符包装,如果未被包装则返回原字符串
          *
          * @param str             字符串
          * @param prefixAndSuffix 前置和后置字符
    @@ -3760,7 +3760,7 @@ public static boolean endWith(CharSequence str, char c) {
     
         /**
          * 是否以指定字符串结尾
    -     * 如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false
    +     * 如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false
          *
          * @param str          被监测字符串
          * @param suffix       结尾字符串
    @@ -3791,7 +3791,7 @@ public static boolean endWith(CharSequence str, CharSequence suffix) {
         }
     
         /**
    -     * 是否以指定字符串结尾,忽略大小写
    +     * 是否以指定字符串结尾,忽略大小写
          *
          * @param str    被监测字符串
          * @param suffix 结尾字符串
    @@ -3840,7 +3840,7 @@ public static String strip(CharSequence str, CharSequence prefix, CharSequence s
         }
     
         /**
    -     * 去除两边的指定字符串,忽略大小写
    +     * 去除两边的指定字符串,忽略大小写
          *
          * @param str            被处理的字符串
          * @param prefixOrSuffix 前缀或后缀
    @@ -3852,7 +3852,7 @@ public static String stripIgnoreCase(CharSequence str, CharSequence prefixOrSuff
         }
     
         /**
    -     * 去除两边的指定字符串,忽略大小写
    +     * 去除两边的指定字符串,忽略大小写
          *
          * @param str    被处理的字符串
          * @param prefix 前缀
    @@ -3878,7 +3878,7 @@ public static String stripIgnoreCase(CharSequence str, CharSequence prefix, Char
         }
     
         /**
    -     * 如果给定字符串不是以prefix开头的,在开头补充 prefix
    +     * 如果给定字符串不是以prefix开头的,在开头补充 prefix
          *
          * @param str    字符串
          * @param prefix 前缀
    @@ -3898,7 +3898,7 @@ public static String addPrefixIfNot(CharSequence str, CharSequence prefix) {
         }
     
         /**
    -     * 如果给定字符串不是以suffix结尾的,在尾部补充 suffix
    +     * 如果给定字符串不是以suffix结尾的,在尾部补充 suffix
          *
          * @param str    字符串
          * @param suffix 后缀
    @@ -3953,7 +3953,7 @@ public static boolean containsAny(CharSequence str, char... testChars) {
          *
          * @param str       字符串
          * @param testChars 检查的字符
    -     * @return 字符串含有非检查的字符,返回false
    +     * @return 字符串含有非检查的字符, 返回false
          */
         public static boolean containsOnly(CharSequence str, char... testChars) {
             if (false == isEmpty(str)) {
    @@ -3969,7 +3969,7 @@ public static boolean containsOnly(CharSequence str, char... testChars) {
     
         /**
          * 给定字符串是否包含空白符(空白符包括空格、制表符、全角空格和不间断空格)
    -     * 如果给定字符串为null或者"",则返回false
    +     * 如果给定字符串为null或者"",则返回false
          *
          * @param str 字符串
          * @return 是否包含空白符
    @@ -3992,7 +3992,7 @@ public static boolean containsBlank(CharSequence str) {
         }
     
         /**
    -     * 查找指定字符串是否包含指定字符串列表中的任意一个字符串,如果包含返回找到的第一个字符串
    +     * 查找指定字符串是否包含指定字符串列表中的任意一个字符串,如果包含返回找到的第一个字符串
          *
          * @param str      指定字符串
          * @param testStrs 需要检查的字符串数组
    @@ -4012,7 +4012,7 @@ public static String getContainsStr(CharSequence str, CharSequence... testStrs)
         }
     
         /**
    -     * 是否包含特定字符,忽略大小写,如果给定两个参数都为null,返回true
    +     * 是否包含特定字符,忽略大小写,如果给定两个参数都为null,返回true
          *
          * @param str     被检测字符串
          * @param testStr 被测试是否包含的字符串
    @@ -4040,7 +4040,7 @@ public static boolean containsAnyIgnoreCase(CharSequence str, CharSequence... te
         }
     
         /**
    -     * 查找指定字符串是否包含指定字符串列表中的任意一个字符串,如果包含返回找到的第一个字符串
    +     * 查找指定字符串是否包含指定字符串列表中的任意一个字符串,如果包含返回找到的第一个字符串
          * 忽略大小写
          *
          * @param str      指定字符串
    @@ -4062,9 +4062,9 @@ public static String getContainsStrIgnoreCase(CharSequence str, CharSequence...
     
     
         /**
    -     * 截取分隔字符串之前的字符串,不包括分隔字符串
    -     * 如果给定的字符串为空串(null或"")或者分隔字符串为null,返回原字符串
    -     * 如果分隔字符串为空串"",则返回空串,如果分隔字符串未找到,返回原字符串,举例如下:
    +     * 截取分隔字符串之前的字符串,不包括分隔字符串
    +     * 如果给定的字符串为空串(null或"")或者分隔字符串为null,返回原字符串
    +     * 如果分隔字符串为空串"",则返回空串,如果分隔字符串未找到,返回原字符串,举例如下:
          *
          * 
          * StringUtils.subBefore(null, *)      = null
    @@ -4079,7 +4079,7 @@ public static String getContainsStrIgnoreCase(CharSequence str, CharSequence...
          *
          * @param string          被查找的字符串
          * @param separator       分隔字符串(不包括)
    -     * @param isLastSeparator 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个
    +     * @param isLastSeparator 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个
          * @return 切割后的字符串
          * @since 3.1.1
          */
    @@ -4104,9 +4104,9 @@ public static String subBefore(CharSequence string, CharSequence separator, bool
         }
     
         /**
    -     * 截取分隔字符串之前的字符串,不包括分隔字符串
    -     * 如果给定的字符串为空串(null或"")或者分隔字符串为null,返回原字符串
    -     * 如果分隔字符串未找到,返回原字符串,举例如下:
    +     * 截取分隔字符串之前的字符串,不包括分隔字符串
    +     * 如果给定的字符串为空串(null或"")或者分隔字符串为null,返回原字符串
    +     * 如果分隔字符串未找到,返回原字符串,举例如下:
          *
          * 
          * StringUtils.subBefore(null, *)      = null
    @@ -4119,7 +4119,7 @@ public static String subBefore(CharSequence string, CharSequence separator, bool
          *
          * @param string          被查找的字符串
          * @param separator       分隔字符串(不包括)
    -     * @param isLastSeparator 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个
    +     * @param isLastSeparator 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个
          * @return 切割后的字符串
          */
         public static String subBefore(CharSequence string, char separator, boolean isLastSeparator) {
    @@ -4139,9 +4139,9 @@ public static String subBefore(CharSequence string, char separator, boolean isLa
         }
     
         /**
    -     * 截取分隔字符串之后的字符串,不包括分隔字符串
    -     * 如果给定的字符串为空串(null或""),返回原字符串
    -     * 如果分隔字符串为空串(null或""),则返回空串,如果分隔字符串未找到,返回空串,举例如下:
    +     * 截取分隔字符串之后的字符串,不包括分隔字符串
    +     * 如果给定的字符串为空串(null或""),返回原字符串
    +     * 如果分隔字符串为空串(null或""),则返回空串,如果分隔字符串未找到,返回空串,举例如下:
          *
          * 
          * StringUtils.subAfter(null, *)      = null
    @@ -4156,7 +4156,7 @@ public static String subBefore(CharSequence string, char separator, boolean isLa
          *
          * @param string          被查找的字符串
          * @param separator       分隔字符串(不包括)
    -     * @param isLastSeparator 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个
    +     * @param isLastSeparator 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个
          * @return 切割后的字符串
          * @since 3.1.1
          */
    @@ -4177,9 +4177,9 @@ public static String subAfter(CharSequence string, CharSequence separator, boole
         }
     
         /**
    -     * 截取分隔字符串之后的字符串,不包括分隔字符串
    -     * 如果给定的字符串为空串(null或""),返回原字符串
    -     * 如果分隔字符串为空串(null或""),则返回空串,如果分隔字符串未找到,返回空串,举例如下:
    +     * 截取分隔字符串之后的字符串,不包括分隔字符串
    +     * 如果给定的字符串为空串(null或""),返回原字符串
    +     * 如果分隔字符串为空串(null或""),则返回空串,如果分隔字符串未找到,返回空串,举例如下:
          *
          * 
          * StringUtils.subAfter(null, *)      = null
    @@ -4192,7 +4192,7 @@ public static String subAfter(CharSequence string, CharSequence separator, boole
          *
          * @param string          被查找的字符串
          * @param separator       分隔字符串(不包括)
    -     * @param isLastSeparator 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个
    +     * @param isLastSeparator 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个
          * @return 切割后的字符串
          */
         public static String subAfter(CharSequence string, char separator, boolean isLastSeparator) {
    @@ -4208,7 +4208,7 @@ public static String subAfter(CharSequence string, char separator, boolean isLas
         }
     
         /**
    -     * 截取指定字符串中间部分,不包括标识字符串
    +     * 截取指定字符串中间部分,不包括标识字符串
          * 

    * 栗子: * @@ -4251,7 +4251,7 @@ public static String subBetween(CharSequence str, CharSequence before, CharSeque } /** - * 截取指定字符串中间部分,不包括标识字符串 + * 截取指定字符串中间部分,不包括标识字符串 *

    * 栗子: * @@ -4279,7 +4279,7 @@ public static String subBetween(CharSequence str, CharSequence beforeAndAfter) { * @param str 字符串 * @param prefix 前缀 * @param suffix 后缀 - * @return 是否包围,空串不包围 + * @return 是否包围, 空串不包围 */ public static boolean isSurround(CharSequence str, CharSequence prefix, CharSequence suffix) { if (isBlank(str)) { @@ -4299,7 +4299,7 @@ public static boolean isSurround(CharSequence str, CharSequence prefix, CharSequ * @param str 字符串 * @param prefix 前缀 * @param suffix 后缀 - * @return 是否包围,空串不包围 + * @return 是否包围, 空串不包围 */ public static boolean isSurround(CharSequence str, char prefix, char suffix) { if (isBlank(str)) { @@ -4823,10 +4823,10 @@ public static String leftPad(final String str, final int size, String padStr) { } /** - * 获取字符串的长度,如果为null返回0 + * 获取字符串的长度,如果为null返回0 * * @param cs a 字符串 - * @return 字符串的长度,如果为null返回0 + * @return 字符串的长度, 如果为null返回0 */ public static int length(final CharSequence cs) { return cs == null ? 0 : cs.length(); @@ -4883,7 +4883,7 @@ public static String concat(boolean isNullToEmpty, CharSequence... strs) { } /** - * 给定字符串中的字母是否全部为大写,判断依据如下: + * 给定字符串中的字母是否全部为大写,判断依据如下: * *

          * 1. 大写字母包括A-Z
    @@ -4907,7 +4907,7 @@ public static boolean isUpperCase(CharSequence str) {
         }
     
         /**
    -     * 给定字符串中的字母是否全部为小写,判断依据如下:
    +     * 给定字符串中的字母是否全部为小写,判断依据如下:
          *
          * 
          * 1. 小写字母包括a-z
    @@ -4942,7 +4942,7 @@ public static int byteLength(CharSequence cs, Charset charset) {
         }
     
         /**
    -     * 切换给定字符串中的大小写。大写转小写,小写转大写。
    +     * 切换给定字符串中的大小写 大写转小写,小写转大写
          *
          * 
          * StringUtils.swapCase(null)                 = null
    @@ -4974,7 +4974,7 @@ public static String swapCase(final String str) {
         }
     
         /**
    -     * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
    +     * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
          * 字符填充于字符串前
          *
          * @param str        被填充的字符串
    @@ -4988,7 +4988,7 @@ public static String fillBefore(String str, char filledChar, int len) {
         }
     
         /**
    -     * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
    +     * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
          * 字符填充于字符串后
          *
          * @param strVal  被填充的字符串
    @@ -5002,7 +5002,7 @@ public static String fillAfter(String strVal, char charVal, int len) {
         }
     
         /**
    -     * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
    +     * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
          *
          * @param strVal  被填充的字符串
          * @param charVal 填充的字符
    @@ -5223,7 +5223,7 @@ public static String[] cut(CharSequence str, int partLength) {
         }
     
         /**
    -     * 将给定字符串,变成 "xxx...xxx" 形式的字符串
    +     * 将给定字符串,变成 "xxx...xxx" 形式的字符串
          *
          * @param str       字符串
          * @param maxLength 最大长度
    @@ -5295,7 +5295,7 @@ public static String firstCharToUpper(String str) {
         }
     
         /**
    -     * 清理字符串,清理出某些不可见字符和一些sql特殊字符
    +     * 清理字符串,清理出某些不可见字符和一些sql特殊字符
          *
          * @param txt 文本
          * @return {String}
    @@ -5308,7 +5308,7 @@ public static String cleanText(String txt) {
         }
     
         /**
    -     * 获取标识符,用于参数清理
    +     * 获取标识符,用于参数清理
          *
          * @param param 参数
          * @return 清理后的标识符
    diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/TextUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/TextUtils.java
    index d0cfb3377b..cd8486a896 100755
    --- a/bus-core/src/main/java/org/aoju/bus/core/utils/TextUtils.java
    +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/TextUtils.java
    @@ -31,7 +31,7 @@
     import java.util.Arrays;
     
     /**
    - * 可复用的字符串生成器,非线程安全
    + * 可复用的字符串生成器,非线程安全
      *
      * @author Kimi Liu
      * @version 5.2.2
    @@ -48,7 +48,7 @@ public class TextUtils implements CharSequence, Appendable, Serializable {
          */
         private char[] value;
         /**
    -     * 当前指针位置,或者叫做已经加入的字符数,此位置总在最后一个字符之后
    +     * 当前指针位置,或者叫做已经加入的字符数,此位置总在最后一个字符之后
          */
         private int position;
     
    @@ -140,7 +140,7 @@ public static double similar(String strA, String strB) {
                 newStrA = removeSign(strA);
                 newStrB = removeSign(strB);
             }
    -        // 用较大的字符串长度作为分母,相似子串作为分子计算出字串相似度
    +        // 用较大的字符串长度作为分母,相似子串作为分子计算出字串相似度
             int temp = Math.max(newStrA.length(), newStrB.length());
             int temp2 = longestCommonSubstring(newStrA, newStrB).length();
             return NumberUtils.div(temp2, temp);
    @@ -159,14 +159,14 @@ public static String similar(String strA, String strB, int scale) {
         }
     
         /**
    -     * 将字符串的所有数据依次写成一行,去除无意义字符串
    +     * 将字符串的所有数据依次写成一行,去除无意义字符串
          *
          * @param str 字符串
          * @return 处理后的字符串
          */
         private static String removeSign(String str) {
             StringBuilder sb = new StringBuilder(str.length());
    -        // 遍历字符串str,如果是汉字数字或字母,则追加到ab上面
    +        // 遍历字符串str,如果是汉字数字或字母,则追加到ab上面
             int length = str.length();
             for (int i = 0; i < length; i++) {
                 sb.append(charReg(str.charAt(i)));
    @@ -175,10 +175,10 @@ private static String removeSign(String str) {
         }
     
         /**
    -     * 判断字符是否为汉字,数字和字母, 因为对符号进行相似度比较没有实际意义,故符号不加入考虑范围。
    +     * 判断字符是否为汉字,数字和字母, 因为对符号进行相似度比较没有实际意义,故符号不加入考虑范围
          *
          * @param charValue 字符
    -     * @return 是否为汉字,数字和字母
    +     * @return 是否为汉字, 数字和字母
          */
         private static boolean charReg(char charValue) {
             return (charValue >= 0x4E00 && charValue <= 0XFFF) || //
    @@ -188,7 +188,7 @@ private static boolean charReg(char charValue) {
         }
     
         /**
    -     * 求公共子串,采用动态规划算法。 其不要求所求得的字符在所给的字符串中是连续的。
    +     * 求公共子串,采用动态规划算法  其不要求所求得的字符在所给的字符串中是连续的
          *
          * @param strA 字符串1
          * @param strB 字符串2
    @@ -200,7 +200,7 @@ private static String longestCommonSubstring(String strA, String strB) {
             int m = chars_strA.length;
             int n = chars_strB.length;
     
    -        // 初始化矩阵数据,matrix[0][0]的值为0, 如果字符数组chars_strA和chars_strB的对应位相同,则matrix[i][j]的值为左上角的值加1, 否则,matrix[i][j]的值等于左上方最近两个位置的较大值, 矩阵中其余各点的值为0.
    +        // 初始化矩阵数据,matrix[0][0]的值为0, 如果字符数组chars_strA和chars_strB的对应位相同,则matrix[i][j]的值为左上角的值加1, 否则,matrix[i][j]的值等于左上方最近两个位置的较大值, 矩阵中其余各点的值为0.
             int[][] matrix = new int[m + 1][n + 1];
             for (int i = 1; i <= m; i++) {
                 for (int j = 1; j <= n; j++) {
    @@ -212,7 +212,7 @@ private static String longestCommonSubstring(String strA, String strB) {
                 }
             }
     
    -        // 矩阵中,如果matrix[m][n]的值不等于matrix[m-1][n]的值也不等于matrix[m][n-1]的值, 则matrix[m][n]对应的字符为相似字符元,并将其存入result数组中。
    +        // 矩阵中,如果matrix[m][n]的值不等于matrix[m-1][n]的值也不等于matrix[m][n-1]的值, 则matrix[m][n]对应的字符为相似字符元,并将其存入result数组中
             char[] result = new char[matrix[m][n]];
             int currentIndex = result.length - 1;
             while (matrix[m][n] != 0) {
    @@ -231,7 +231,7 @@ private static String longestCommonSubstring(String strA, String strB) {
         }
     
         /**
    -     * 追加对象,对象会被转换为字符串
    +     * 追加对象,对象会被转换为字符串
          *
          * @param obj 对象
          * @return this
    @@ -287,7 +287,7 @@ public TextUtils append(CharSequence csq, int start, int end) {
         }
     
         /**
    -     * 追加对象,对象会被转换为字符串
    +     * 追加对象,对象会被转换为字符串
          *
          * @param index 位置
          * @param obj   对象
    @@ -316,8 +316,8 @@ public TextUtils insert(int index, char c) {
     
         /**
          * 指定位置插入数据
    -     * 如果插入位置为当前位置,则定义为追加
    -     * 如果插入位置大于当前位置,则中间部分补充空格
    +     * 如果插入位置为当前位置,则定义为追加
    +     * 如果插入位置大于当前位置,则中间部分补充空格
          *
          * @param index 插入位置
          * @param src   源数组
    @@ -332,8 +332,8 @@ public TextUtils insert(int index, char[] src) {
     
         /**
          * 指定位置插入数据
    -     * 如果插入位置为当前位置,则定义为追加
    -     * 如果插入位置大于当前位置,则中间部分补充空格
    +     * 如果插入位置为当前位置,则定义为追加
    +     * 如果插入位置大于当前位置,则中间部分补充空格
          *
          * @param index  插入位置
          * @param src    源数组
    @@ -351,7 +351,7 @@ public TextUtils insert(int index, char[] src, int srcPos, int length) {
             if (srcPos < 0) {
                 srcPos = 0;
             } else if (srcPos + length > src.length) {
    -            // 长度越界,只截取最大长度
    +            // 长度越界,只截取最大长度
                 length = src.length - srcPos;
             }
     
    @@ -364,8 +364,8 @@ public TextUtils insert(int index, char[] src, int srcPos, int length) {
     
         /**
          * 指定位置插入字符串的某个部分
    -     * 如果插入位置为当前位置,则定义为追加
    -     * 如果插入位置大于当前位置,则中间部分补充空格
    +     * 如果插入位置为当前位置,则定义为追加
    +     * 如果插入位置大于当前位置,则中间部分补充空格
          *
          * @param index 位置
          * @param csq   字符串
    @@ -396,8 +396,8 @@ public TextUtils insert(int index, CharSequence csq) {
     
         /**
          * 指定位置插入字符串的某个部分
    -     * 如果插入位置为当前位置,则定义为追加
    -     * 如果插入位置大于当前位置,则中间部分补充空格
    +     * 如果插入位置为当前位置,则定义为追加
    +     * 如果插入位置大于当前位置,则中间部分补充空格
          *
          * @param index 位置
          * @param csq   字符串
    @@ -479,7 +479,7 @@ public boolean isEmpty() {
         }
     
         /**
    -     * 删除全部字符,位置归零
    +     * 删除全部字符,位置归零
          *
          * @return this
          */
    @@ -488,7 +488,7 @@ public TextUtils clear() {
         }
     
         /**
    -     * 删除全部字符,位置归零
    +     * 删除全部字符,位置归零
          *
          * @return this
          */
    @@ -499,9 +499,9 @@ public TextUtils reset() {
     
         /**
          * 删除到指定位置
    -     * 如果新位置小于等于0,则删除全部
    +     * 如果新位置小于等于0,则删除全部
          *
    -     * @param newPosition 新的位置,不包括这个位置
    +     * @param newPosition 新的位置,不包括这个位置
          * @return this
          */
         public TextUtils delTo(int newPosition) {
    @@ -545,7 +545,7 @@ public TextUtils del(int start, int end) {
         /**
          * 生成字符串
          *
    -     * @param isReset 是否重置,重置后相当于空的构建器
    +     * @param isReset 是否重置,重置后相当于空的构建器
          * @return 生成的字符串
          */
         public String toString(boolean isReset) {
    @@ -624,17 +624,17 @@ public String subString(int start, int end) {
         private void moveDataAfterIndex(int index, int length) {
             ensureCapacity(Math.max(this.position, index) + length);
             if (index < this.position) {
    -            // 插入位置在已有数据范围内,后移插入位置之后的数据
    +            // 插入位置在已有数据范围内,后移插入位置之后的数据
                 System.arraycopy(this.value, index, this.value, index + length, this.position - index);
             } else if (index > this.position) {
    -            // 插入位置超出范围,则当前位置到index清除为空格
    +            // 插入位置超出范围,则当前位置到index清除为空格
                 Arrays.fill(this.value, this.position, index, Symbol.C_SPACE);
             }
             // 不位移
         }
     
         /**
    -     * 确认容量是否够用,不够用则扩展容量
    +     * 确认容量是否够用,不够用则扩展容量
          *
          * @param minimumCapacity 最小容量
          */
    @@ -646,7 +646,7 @@ private void ensureCapacity(int minimumCapacity) {
     
         /**
          * 扩展容量
    -     * 首先对容量进行二倍扩展,如果小于最小容量,则扩展为最小容量
    +     * 首先对容量进行二倍扩展,如果小于最小容量,则扩展为最小容量
          *
          * @param minimumCapacity 需要扩展的最小容量
          */
    diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/ThreadUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/ThreadUtils.java
    index 55e48f2809..7d1e4b8f8b 100755
    --- a/bus-core/src/main/java/org/aoju/bus/core/utils/ThreadUtils.java
    +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/ThreadUtils.java
    @@ -60,7 +60,7 @@ public static ExecutorService newExecutor() {
         }
     
         /**
    -     * 获得一个新的线程池,只有单个线程
    +     * 获得一个新的线程池,只有单个线程
          *
          * @return ExecutorService
          */
    @@ -70,7 +70,7 @@ public static ExecutorService newSingleExecutor() {
     
         /**
          * 获得一个新的线程池
    -     * 如果maximumPoolSize =》 corePoolSize,在没有新任务加入的情况下,多出的线程将最多保留60s
    +     * 如果maximumPoolSize =》 corePoolSize,在没有新任务加入的情况下,多出的线程将最多保留60s
          *
          * @param corePoolSize    初始线程池大小
          * @param maximumPoolSize 最大线程池大小
    @@ -82,13 +82,13 @@ public static ThreadPoolExecutor newExecutor(int corePoolSize, int maximumPoolSi
     
         /**
          * 获得一个新的线程池
    -     * 传入阻塞系数,线程池的大小计算公式为:CPU可用核心数 / (1 - 阻塞因子)
    +     * 传入阻塞系数,线程池的大小计算公式为:CPU可用核心数 / (1 - 阻塞因子)
          * Blocking Coefficient(阻塞系数) = 阻塞时间/(阻塞时间+使用CPU的时间)
    -     * 计算密集型任务的阻塞系数为0,而IO密集型任务的阻塞系数则接近于1。
    +     * 计算密集型任务的阻塞系数为0,而IO密集型任务的阻塞系数则接近于1
          * 

    * see: http://blog.csdn.net/partner4java/article/details/9417663 * - * @param blockingCoefficient 阻塞系数,阻塞因子介于0~1之间的数,阻塞因子越大,线程池中的线程数越多。 + * @param blockingCoefficient 阻塞系数,阻塞因子介于0~1之间的数,阻塞因子越大,线程池中的线程数越多 * @return {@link ThreadPoolExecutor} * @since 3.1.9 */ @@ -115,7 +115,7 @@ public static void execute(Runnable runnable) { * 执行异步方法 * * @param runnable 需要执行的方法体 - * @param isDeamon 是否守护线程。守护线程会在主线程结束后自动结束 + * @param isDeamon 是否守护线程 守护线程会在主线程结束后自动结束 * @return 执行的方法体 */ public static Runnable excAsync(final Runnable runnable, boolean isDeamon) { @@ -133,7 +133,7 @@ public void run() { /** * 执行有返回值的异步方法 - * Future代表一个异步执行的操作,通过get()方法可以获得操作的结果,如果异步操作还没有完成,则,get()会使当前线程阻塞 + * Future代表一个异步执行的操作,通过get()方法可以获得操作的结果,如果异步操作还没有完成,则,get()会使当前线程阻塞 * * @param 回调对象类型 * @param task {@link Callable} @@ -145,7 +145,7 @@ public static Future execAsync(Callable task) { /** * 执行有返回值的异步方法 - * Future代表一个异步执行的操作,通过get()方法可以获得操作的结果,如果异步操作还没有完成,则,get()会使当前线程阻塞 + * Future代表一个异步执行的操作,通过get()方法可以获得操作的结果,如果异步操作还没有完成,则,get()会使当前线程阻塞 * * @param runnable 可运行对象 * @return {@link Future} @@ -156,8 +156,8 @@ public static Future execAsync(Runnable runnable) { } /** - * 新建一个CompletionService,调用其submit方法可以异步执行多个任务,最后调用take方法按照完成的顺序获得其结果。 - * 若未完成,则会阻塞 + * 新建一个CompletionService,调用其submit方法可以异步执行多个任务,最后调用take方法按照完成的顺序获得其结果 + * 若未完成,则会阻塞 * * @param 回调对象类型 * @return CompletionService @@ -167,8 +167,8 @@ public static CompletionService newCompletionService() { } /** - * 新建一个CompletionService,调用其submit方法可以异步执行多个任务,最后调用take方法按照完成的顺序获得其结果。 - * 若未完成,则会阻塞 + * 新建一个CompletionService,调用其submit方法可以异步执行多个任务,最后调用take方法按照完成的顺序获得其结果 + * 若未完成,则会阻塞 * * @param 回调对象类型 * @param executor 执行器 {@link ExecutorService} @@ -179,7 +179,7 @@ public static CompletionService newCompletionService(ExecutorService exec } /** - * 新建一个CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 + * 新建一个CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待 * * @param threadCount 线程数量 * @return CountDownLatch @@ -189,7 +189,7 @@ public static CountDownLatch newCountDownLatch(int threadCount) { } /** - * 创建新线程,非守护线程,正常优先级,线程组与当前线程的线程组一致 + * 创建新线程,非守护线程,正常优先级,线程组与当前线程的线程组一致 * * @param runnable {@link Runnable} * @param name 线程名 @@ -223,7 +223,7 @@ public static Thread newThread(Runnable runnable, String name, boolean isDeamon) * * @param timeout 挂起的时长 * @param timeUnit 时长单位 - * @return 被中断返回false,否则true + * @return 被中断返回false, 否则true */ public static boolean sleep(Number timeout, TimeUnit timeUnit) { try { @@ -238,7 +238,7 @@ public static boolean sleep(Number timeout, TimeUnit timeUnit) { * 挂起当前线程 * * @param millis 挂起的毫秒数 - * @return 被中断返回false,否则true + * @return 被中断返回false, 否则true */ public static boolean sleep(Number millis) { if (millis == null) { @@ -254,10 +254,10 @@ public static boolean sleep(Number millis) { } /** - * 考虑{@link Thread#sleep(long)}方法有可能时间不足给定毫秒数,此方法保证sleep时间不小于给定的毫秒数 + * 考虑{@link Thread#sleep(long)}方法有可能时间不足给定毫秒数,此方法保证sleep时间不小于给定的毫秒数 * * @param millis 给定的sleep时间 - * @return 被中断返回false,否则true + * @return 被中断返回false, 否则true * @see ThreadUtils#sleep(Number) */ public static boolean safeSleep(Number millis) { @@ -321,7 +321,7 @@ public static ThreadBuilder createThreadFactoryBuilder() { } /** - * 结束线程,调用此方法后,线程将抛出 {@link InterruptedException}异常 + * 结束线程,调用此方法后,线程将抛出 {@link InterruptedException}异常 * * @param thread 线程 * @param isJoin 是否等待结束 @@ -363,7 +363,7 @@ public static Thread[] getThreads() { /** * 获取JVM中与当前线程同组的所有线程 - * 使用数组二次拷贝方式,防止在线程列表获取过程中线程终止 + * 使用数组二次拷贝方式,防止在线程列表获取过程中线程终止 * from Voovan * * @param group 线程组 @@ -418,7 +418,7 @@ public static ThreadFactory newNamedThreadFactory(String prefix, boolean isDeamo * 创建线程工厂 * * @param prefix 线程名前缀 - * @param threadGroup 线程组,可以为null + * @param threadGroup 线程组,可以为null * @param isDeamon 是否守护线程 * @return the object */ @@ -430,7 +430,7 @@ public static ThreadFactory newNamedThreadFactory(String prefix, ThreadGroup thr * 创建线程工厂 * * @param prefix 线程名前缀 - * @param threadGroup 线程组,可以为null + * @param threadGroup 线程组,可以为null * @param isDeamon 是否守护线程 * @param handler 未捕获异常处理 * @return the object @@ -440,7 +440,7 @@ public static ThreadFactory newNamedThreadFactory(String prefix, ThreadGroup thr } /** - * 阻塞当前线程,保证在main方法中执行不被退出 + * 阻塞当前线程,保证在main方法中执行不被退出 * * @param obj 对象所在线程 */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/TypeUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/TypeUtils.java index 60d0cbcd41..b8353f2ee7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/TypeUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/TypeUtils.java @@ -180,7 +180,7 @@ public static boolean isJavaBean(Class clazz) { /** * 判断一个类是JDK 自带的类型 - * jdk 自带的类,classLoader 是为空的。 + * jdk 自带的类,classLoader 是为空的 * * @param clazz 类 * @return 是否为 java 类 @@ -213,7 +213,7 @@ public static boolean isBean(Class clazz) { * 获得Type对应的原始类 * * @param type {@link Type} - * @return 原始类,如果无法获取原始类,返回{@code null} + * @return 原始类, 如果无法获取原始类, 返回{@code null} */ public static Class getClass(Type type) { if (null != type) { @@ -235,10 +235,10 @@ public static Class getClass(Type type) { /** * 获取方法的第一个参数类型
    - * 优先获取方法的GenericParameterTypes,如果获取不到,则获取ParameterTypes + * 优先获取方法的GenericParameterTypes,如果获取不到,则获取ParameterTypes * * @param method 方法 - * @return {@link Type},可能为{@code null} + * @return {@link Type},可能为{@code null} * @since 3.1.2 */ public static Type getFirstParamType(Method method) { @@ -249,7 +249,7 @@ public static Type getFirstParamType(Method method) { * 获取方法的第一个参数类 * * @param method 方法 - * @return 第一个参数类型,可能为{@code null} + * @return 第一个参数类型, 可能为{@code null} * @since 3.1.2 */ public static Class getFirstParamClass(Method method) { @@ -258,11 +258,11 @@ public static Class getFirstParamClass(Method method) { /** * 获取方法的参数类型
    - * 优先获取方法的GenericParameterTypes,如果获取不到,则获取ParameterTypes + * 优先获取方法的GenericParameterTypes,如果获取不到,则获取ParameterTypes * * @param method 方法 - * @param index 第几个参数的索引,从0开始计数 - * @return {@link Type},可能为{@code null} + * @param index 第几个参数的索引,从0开始计数 + * @return {@link Type},可能为{@code null} */ public static Type getParamType(Method method, int index) { Type[] types = getParamTypes(method); @@ -276,8 +276,8 @@ public static Type getParamType(Method method, int index) { * 获取方法的参数类 * * @param method 方法 - * @param index 第几个参数的索引,从0开始计数 - * @return 参数类,可能为{@code null} + * @param index 第几个参数的索引,从0开始计数 + * @return 参数类, 可能为{@code null} * @since 3.1.2 */ public static Class getParamClass(Method method, int index) { @@ -291,8 +291,8 @@ public static Class getParamClass(Method method, int index) { /** * 获得给定类的第一个泛型参数 * - * @param type 被检查的类型,必须是已经确定泛型类型的类型 - * @return {@link Type},可能为{@code null} + * @param type 被检查的类型,必须是已经确定泛型类型的类型 + * @return {@link Type},可能为{@code null} */ public static Type getTypeArgument(Type type) { return getTypeArgument(type, 0); @@ -301,8 +301,8 @@ public static Type getTypeArgument(Type type) { /** * 获得给定类的泛型参数 * - * @param type 被检查的类型,必须是已经确定泛型类型的类 - * @param index 泛型类型的索引号,既第几个泛型类型 + * @param type 被检查的类型,必须是已经确定泛型类型的类 + * @param index 泛型类型的索引号,既第几个泛型类型 * @return {@link Type} */ public static Type getTypeArgument(Type type, int index) { @@ -317,14 +317,14 @@ public static Type getTypeArgument(Type type, int index) { /** * 将{@link Type} 转换为{@link ParameterizedType}
    * {@link ParameterizedType}用于获取当前类或父类中泛型参数化后的类型
    - * 一般用于获取泛型参数具体的参数类型,例如: + * 一般用于获取泛型参数具体的参数类型,例如: * *

          * class A<T>
          * class B extends A<String>
          * 
    *

    - * 通过此方法,传入B.class即可得到B{@link ParameterizedType},从而获取到String + * 通过此方法,传入B.class即可得到B{@link ParameterizedType},从而获取到String * * @param type {@link Type} * @return {@link ParameterizedType} @@ -340,7 +340,7 @@ public static ParameterizedType toParameterizedType(Type type) { /** * 获取指定泛型变量对应的真实类型
    - * 由于子类中泛型参数实现和父类(接口)中泛型定义位置是一一对应的,因此可以通过对应关系找到泛型实现类型
    + * 由于子类中泛型参数实现和父类(接口)中泛型定义位置是一一对应的,因此可以通过对应关系找到泛型实现类型
    * 使用此方法注意: * *

    @@ -348,10 +348,10 @@ public static ParameterizedType toParameterizedType(Type type) {
          * 2. typeVariable必须在superClass中声明
          * 
    * - * @param actualType 真实类型所在类,此类中记录了泛型参数对应的实际类型 - * @param typeDefineClass 泛型变量声明所在类或接口,此类中定义了泛型类型 - * @param typeVariables 泛型变量,需要的实际类型对应的泛型参数 - * @return 给定泛型参数对应的实际类型,如果无对应类型,返回null + * @param actualType 真实类型所在类,此类中记录了泛型参数对应的实际类型 + * @param typeDefineClass 泛型变量声明所在类或接口,此类中定义了泛型类型 + * @param typeVariables 泛型变量,需要的实际类型对应的泛型参数 + * @return 给定泛型参数对应的实际类型, 如果无对应类型, 返回null */ public static Type[] getActualTypes(Type actualType, Class typeDefineClass, Type... typeVariables) { if (false == typeDefineClass.isAssignableFrom(getClass(actualType))) { @@ -382,7 +382,7 @@ public static Type[] getActualTypes(Type actualType, Class typeDefineClass, T /** * 获取指定泛型变量对应的真实类型
    - * 由于子类中泛型参数实现和父类(接口)中泛型定义位置是一一对应的,因此可以通过对应关系找到泛型实现类型
    + * 由于子类中泛型参数实现和父类(接口)中泛型定义位置是一一对应的,因此可以通过对应关系找到泛型实现类型
    * 使用此方法注意: * *
    @@ -390,9 +390,9 @@ public static Type[] getActualTypes(Type actualType, Class typeDefineClass, T
          * 2. typeVariable必须在superClass中声明
          * 
    * - * @param actualType 真实类型所在类,此类中记录了泛型参数对应的实际类型 - * @param typeDefineClass 泛型变量声明所在类或接口,此类中定义了泛型类型 - * @param typeVariable 泛型变量,需要的实际类型对应的泛型参数 + * @param actualType 真实类型所在类,此类中记录了泛型参数对应的实际类型 + * @param typeDefineClass 泛型变量声明所在类或接口,此类中定义了泛型类型 + * @param typeVariable 泛型变量,需要的实际类型对应的泛型参数 * @return 给定泛型参数对应的实际类型 */ public static Type getActualType(Type actualType, Class typeDefineClass, Type typeVariable) { @@ -474,10 +474,10 @@ public static boolean isSet(final Class clazz) { /** * 获取字段对应的Type类型 - * 方法优先获取GenericType,获取不到则获取Type + * 方法优先获取GenericType,获取不到则获取Type * * @param field 字段 - * @return {@link Type},可能为{@code null} + * @return {@link Type},可能为{@code null} */ public static Type getType(Field field) { if (null == field) { @@ -494,7 +494,7 @@ public static Type getType(Field field) { * 获得Field对应的原始类 * * @param field {@link Field} - * @return 原始类,如果无法获取原始类,返回{@code null} + * @return 原始类, 如果无法获取原始类, 返回{@code null} * @since 3.1.9 */ public static Class getClass(Field field) { @@ -503,10 +503,10 @@ public static Class getClass(Field field) { /** * 获取方法的参数类型列表 - * 优先获取方法的GenericParameterTypes,如果获取不到,则获取ParameterTypes + * 优先获取方法的GenericParameterTypes,如果获取不到,则获取ParameterTypes * * @param method 方法 - * @return {@link Type}列表,可能为{@code null} + * @return {@link Type}列表,可能为{@code null} * @see Method#getGenericParameterTypes() * @see Method#getParameterTypes() */ @@ -533,7 +533,7 @@ public static Class[] getParamClasses(Method method) { * 获取方法的GenericReturnType * * @param method 方法 - * @return {@link Type},可能为{@code null} + * @return {@link Type},可能为{@code null} * @see Method#getGenericReturnType() * @see Method#getReturnType() */ @@ -557,8 +557,8 @@ public static Class getReturnClass(Method method) { /** * 获得给定类的第一个泛型参数 * - * @param clazz 被检查的类,必须是已经确定泛型类型的类 - * @return {@link Type},可能为{@code null} + * @param clazz 被检查的类,必须是已经确定泛型类型的类 + * @return {@link Type},可能为{@code null} */ public static Type getTypeArgument(Class clazz) { return getTypeArgument(clazz, 0); @@ -567,8 +567,8 @@ public static Type getTypeArgument(Class clazz) { /** * 获得给定类的泛型参数 * - * @param clazz 被检查的类,必须是已经确定泛型类型的类 - * @param index 泛型类型的索引号,既第几个泛型类型 + * @param clazz 被检查的类,必须是已经确定泛型类型的类 + * @param index 泛型类型的索引号,既第几个泛型类型 * @return {@link Type} */ public static Type getTypeArgument(Class clazz, int index) { diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/UnicodeUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/UnicodeUtils.java index 5eaf473f8f..374e82ca86 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/UnicodeUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/UnicodeUtils.java @@ -59,12 +59,12 @@ public static String toString(String unicode) { sb.append(c); pos = i + 6;//跳过整个Unicode符 } catch (NumberFormatException e) { - //非法Unicode符,跳过 + //非法Unicode符,跳过 sb.append(unicode, pos, i + 2);//写入"\\u" pos = i + 2; } } else { - pos = i;//非Unicode符,结束 + pos = i;//非Unicode符,结束 break; } } diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/UriUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/UriUtils.java index 468084ef4d..6979f4e028 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/UriUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/UriUtils.java @@ -83,7 +83,7 @@ public static URL url(String url, URLStreamHandler handler) { } /** - * 将URL字符串转换为URL对象,并做必要验证 + * 将URL字符串转换为URL对象,并做必要验证 * * @param urlStr URL字符串 * @return URL @@ -93,7 +93,7 @@ public static URL toUrlForHttp(String urlStr) { } /** - * 将URL字符串转换为URL对象,并做必要验证 + * 将URL字符串转换为URL对象,并做必要验证 * * @param urlStr URL字符串 * @param handler {@link URLStreamHandler} @@ -101,7 +101,7 @@ public static URL toUrlForHttp(String urlStr) { */ public static URL toUrlForHttp(String urlStr, URLStreamHandler handler) { Assert.notBlank(urlStr, "Url is blank !"); - // 去掉url中的空白符,防止空白符导致的异常 + // 去掉url中的空白符,防止空白符导致的异常 urlStr = StringUtils.cleanBlank(urlStr); return UriUtils.url(urlStr, handler); } @@ -130,7 +130,7 @@ public static URL getURL(String path, Class clazz) { } /** - * 获得URL,常用于使用绝对路径时的情况 + * 获得URL,常用于使用绝对路径时的情况 * * @param file URL对应的文件对象 * @return URL @@ -146,7 +146,7 @@ public static URL getURL(File file) { } /** - * 获得URL,常用于使用绝对路径时的情况 + * 获得URL,常用于使用绝对路径时的情况 * * @param files URL对应的文件对象 * @return URL @@ -169,7 +169,7 @@ public static URL[] getURLs(File... files) { * 格式化URL链接 * * @param url 需要格式化的URL - * @return 格式化后的URL,如果提供了null或者空串,返回null + * @return 格式化后的URL, 如果提供了null或者空串, 返回null * @see #normalize(String) */ public static String formatUrl(String url) { @@ -200,8 +200,8 @@ public static String complateUrl(String baseUrl, String relativePath) { } /** - * 编码URL,默认使用UTF-8编码 - * 将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头。 + * 编码URL,默认使用UTF-8编码 + * 将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头 * * @param url URL * @return 编码后的URL @@ -213,8 +213,8 @@ public static String encode(String url) throws InstrumentException { } /** - * 编码URL,默认使用UTF-8编码 - * 将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头。 + * 编码URL,默认使用UTF-8编码 + * 将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头 * * @param url URL * @return 编码后的URL @@ -225,7 +225,7 @@ public static String encodeAll(String url) { /** * 编码URL - * 将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头。 + * 将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头 * * @param url URL * @param charset 编码 @@ -258,7 +258,7 @@ public static String getPath(String uriStr) { /** * 从URL对象中获取不被编码的路径Path - * 对于本地路径,URL对象的getPath方法对于包含中文或空格时会被编码,导致本读路径读取错误。 + * 对于本地路径,URL对象的getPath方法对于包含中文或空格时会被编码,导致本读路径读取错误 * 此方法将URL转为URI后获取路径用于解决路径被编码的问题 * * @param url {@link URL} @@ -396,7 +396,7 @@ public static JarFile getJarFile(URL url) { } /** - * 标准化URL字符串,包括: + * 标准化URL字符串,包括: *
          * 1. 多个/替换为一个
          * 
    @@ -897,12 +897,12 @@ public static String extractFileExtension(String path) { } /** - * 对URL参数做编码,只编码键和值
    - * 提供的值可以是url附带参数,但是不能只是url + * 对URL参数做编码,只编码键和值
    + * 提供的值可以是url附带参数,但是不能只是url * - *

    注意,此方法只能标准化整个URL,并不适合于单独编码参数值

    + *

    注意,此方法只能标准化整个URL,并不适合于单独编码参数值

    * - * @param paramsStr url参数,可以包含url本身 + * @param paramsStr url参数,可以包含url本身 * @param charset 编码 * @return 编码后的url和参数 */ @@ -911,7 +911,7 @@ public static String encodeVal(String paramsStr, Charset charset) { return Normal.EMPTY; } - String urlPart = null; // url部分,不包括问号 + String urlPart = null; // url部分,不包括问号 String paramPart; // 参数部分 int pathEndPos = paramsStr.indexOf('?'); if (pathEndPos > -1) { @@ -919,7 +919,7 @@ public static String encodeVal(String paramsStr, Charset charset) { urlPart = StringUtils.subPre(paramsStr, pathEndPos); paramPart = StringUtils.subSuf(paramsStr, pathEndPos + 1); if (StringUtils.isBlank(paramPart)) { - // 无参数,返回url + // 无参数,返回url return urlPart; } } else { @@ -933,9 +933,9 @@ public static String encodeVal(String paramsStr, Charset charset) { } /** - * 标准化参数字符串,即URL中?后的部分 + * 标准化参数字符串,即URL中?后的部分 * - *

    注意,此方法只能标准化整个URL,并不适合于单独编码参数值

    + *

    注意,此方法只能标准化整个URL,并不适合于单独编码参数值

    * * @param paramPart 参数字符串 * @param charset 编码 @@ -952,14 +952,14 @@ public static String normalize(String paramPart, Charset charset) { c = paramPart.charAt(i); if (c == '=') { // 键值对的分界点 if (null == name) { - // 只有=前未定义name时被当作键值分界符,否则做为普通字符 + // 只有=前未定义name时被当作键值分界符,否则做为普通字符 name = (pos == i) ? Normal.EMPTY : paramPart.substring(pos, i); pos = i + 1; } } else if (c == '&') { // 参数对的分界点 if (pos != i) { if (null == name) { - // 对于像&a&这类无参数值的字符串,我们将name为a的值设为"" + // 对于像&a&这类无参数值的字符串,我们将name为a的值设为"" name = paramPart.substring(pos, i); builder.append(UriUtils.encodeQuery(name, charset)).append('='); } else { @@ -992,7 +992,7 @@ public static String normalize(String paramPart, Charset charset) { /** * 将Map形式的Form表单数据转换为Url参数形式
    - * paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("")
    + * paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("")
    * 会自动url编码键和值 * *
    @@ -1092,7 +1092,7 @@ public static Map> decodeObj(String params, String charset)
                     pos = i + 1;
                 } else if (c == '&') { // 参数对的分界点
                     if (null == name && pos != i) {
    -                    // 对于像&a&这类无参数值的字符串,我们将name为a的值设为""
    +                    // 对于像&a&这类无参数值的字符串,我们将name为a的值设为""
                         addParam(map, params.substring(pos, i), Normal.EMPTY, charset);
                     } else if (name != null) {
                         addParam(map, name, params.substring(pos, i), charset);
    @@ -1118,7 +1118,7 @@ public static Map> decodeObj(String params, String charset)
     
         /**
          * 将表单数据加到URL中(用于GET表单提交)
    - * 表单的键值对会被url编码,但是url中原参数不会被编码 + * 表单的键值对会被url编码,但是url中原参数不会被编码 * * @param url URL * @param form 表单数据 diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/WatchUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/WatchUtils.java index 8ca3776343..be46e7182d 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/WatchUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/WatchUtils.java @@ -59,7 +59,7 @@ public static WatchMonitor create(URL url, WatchEvent.Kind... events) { * * @param url URL * @param events 监听的事件列表 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @return 监听对象 */ public static WatchMonitor create(URL url, int maxDepth, WatchEvent.Kind... events) { @@ -82,7 +82,7 @@ public static WatchMonitor create(URI uri, WatchEvent.Kind... events) { * * @param uri URI * @param events 监听的事件列表 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @return 监听对象 */ public static WatchMonitor create(URI uri, int maxDepth, WatchEvent.Kind... events) { @@ -105,7 +105,7 @@ public static WatchMonitor create(File file, WatchEvent.Kind... events) { * * @param file 文件 * @param events 监听的事件列表 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @return 监听对象 */ public static WatchMonitor create(File file, int maxDepth, WatchEvent.Kind... events) { @@ -128,7 +128,7 @@ public static WatchMonitor create(String path, WatchEvent.Kind... events) { * * @param path 路径 * @param events 监听的事件列表 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @return 监听对象 */ public static WatchMonitor create(String path, int maxDepth, WatchEvent.Kind... events) { @@ -151,7 +151,7 @@ public static WatchMonitor create(Path path, WatchEvent.Kind... events) { * * @param path 路径 * @param events 监听事件列表 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @return 监听对象 */ public static WatchMonitor create(Path path, int maxDepth, WatchEvent.Kind... events) { @@ -159,7 +159,7 @@ public static WatchMonitor create(Path path, int maxDepth, WatchEvent.Kind... } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param url URL * @param watcher {@link Watcher} @@ -170,10 +170,10 @@ public static WatchMonitor createAll(URL url, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param url URL - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @param watcher {@link Watcher} * @return {@link WatchMonitor} */ @@ -182,7 +182,7 @@ public static WatchMonitor createAll(URL url, int maxDepth, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param uri URI * @param watcher {@link Watcher} @@ -193,10 +193,10 @@ public static WatchMonitor createAll(URI uri, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param uri URI - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @param watcher {@link Watcher} * @return {@link WatchMonitor} */ @@ -205,7 +205,7 @@ public static WatchMonitor createAll(URI uri, int maxDepth, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param file 被监听文件 * @param watcher {@link Watcher} @@ -216,10 +216,10 @@ public static WatchMonitor createAll(File file, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param file 被监听文件 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @param watcher {@link Watcher} * @return {@link WatchMonitor} */ @@ -228,7 +228,7 @@ public static WatchMonitor createAll(File file, int maxDepth, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param path 路径 * @param watcher {@link Watcher} @@ -239,10 +239,10 @@ public static WatchMonitor createAll(String path, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param path 路径 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @param watcher {@link Watcher} * @return {@link WatchMonitor} */ @@ -251,7 +251,7 @@ public static WatchMonitor createAll(String path, int maxDepth, Watcher watcher) } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param path 路径 * @param watcher {@link Watcher} @@ -262,10 +262,10 @@ public static WatchMonitor createAll(Path path, Watcher watcher) { } /** - * 创建并初始化监听,监听所有事件 + * 创建并初始化监听,监听所有事件 * * @param path 路径 - * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 + * @param maxDepth 当监听目录时,监听目录的最大深度,当设置值为1(或小于1)时,表示不递归监听子目录 * @param watcher {@link Watcher} * @return {@link WatchMonitor} */ diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/XmlUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/XmlUtils.java index e3c72545db..0b3a09e81a 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/XmlUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/XmlUtils.java @@ -50,7 +50,7 @@ /** * XML工具类 - * 此工具使用w3c dom工具,不需要依赖第三方包。 + * 此工具使用w3c dom工具,不需要依赖第三方包 * 工具类封装了XML文档的创建、读取、写出和部分XML操作 * * @author Kimi Liu @@ -123,7 +123,7 @@ public static T readObjectFromXml(InputSource source) { /** * 创建XML文档 - * 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,既XML在转为文本的时候才定义编码 + * 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,既XML在转为文本的时候才定义编码 * * @return XML文档 */ @@ -150,7 +150,7 @@ public static DocumentBuilder createDocumentBuilder() { /** * 创建XML文档 - * 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,既XML在转为文本的时候才定义编码 + * 创建的XML默认是utf8编码,修改编码的过程是在toStr和toFile方法里,既XML在转为文本的时候才定义编码 * * @param rootElementName 根节点名称 * @return XML文档 @@ -247,7 +247,7 @@ public static List transElements(NodeList nodeList) { * 将NodeList转换为Element列表 * 非Element节点将被忽略 * - * @param parentEle 父节点,如果指定将返回此节点的所有直接子节点,nul返回所有就节点 + * @param parentEle 父节点,如果指定将返回此节点的所有直接子节点,nul返回所有就节点 * @param nodeList NodeList * @return Element列表 */ @@ -283,7 +283,7 @@ public static XPath createXPath() { * 通过XPath方式读取XML节点等信息 * * @param expression XPath表达式 - * @param source 资源,可以是Docunent、Node节点等 + * @param source 资源,可以是Docunent、Node节点等 * @return 匹配返回类型的值 */ public static Element getElementByXPath(String expression, Object source) { @@ -294,7 +294,7 @@ public static Element getElementByXPath(String expression, Object source) { * 通过XPath方式读取XML的NodeList * * @param expression XPath表达式 - * @param source 资源,可以是Docunent、Node节点等 + * @param source 资源,可以是Docunent、Node节点等 * @return NodeList */ public static NodeList getNodeListByXPath(String expression, Object source) { @@ -306,7 +306,7 @@ public static NodeList getNodeListByXPath(String expression, Object source) { * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html * * @param expression XPath表达式 - * @param source 资源,可以是Docunent、Node节点等 + * @param source 资源,可以是Docunent、Node节点等 * @return 匹配返回类型的值 */ public static Node getNodeByXPath(String expression, Object source) { @@ -318,8 +318,8 @@ public static Node getNodeByXPath(String expression, Object source) { * Xpath相关文章:https://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html * * @param expression XPath表达式 - * @param source 资源,可以是Docunent、Node节点等 - * @param returnType 返回类型,{@link XPathConstants} + * @param source 资源,可以是Docunent、Node节点等 + * @param returnType 返回类型,{@link XPathConstants} * @return 匹配返回类型的值 * @since 5.2.2 */ @@ -475,7 +475,7 @@ private static void mapToXml(Document doc, Element element, Map data) { } /** - * 关闭XXE,避免漏洞攻击 + * 关闭XXE,避免漏洞攻击 * see: https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet#JAXP_DocumentBuilderFactory.2C_SAXParserFactory_and_DOM4J * * @param dbf DocumentBuilderFactory diff --git a/bus-core/src/main/java/org/aoju/bus/core/utils/ZipUtils.java b/bus-core/src/main/java/org/aoju/bus/core/utils/ZipUtils.java index 2950efa1a8..85908ff3e7 100755 --- a/bus-core/src/main/java/org/aoju/bus/core/utils/ZipUtils.java +++ b/bus-core/src/main/java/org/aoju/bus/core/utils/ZipUtils.java @@ -44,12 +44,12 @@ public class ZipUtils { private static final int DEFAULT_BYTE_ARRAY_LENGTH = 32; /** - * 默认编码,使用平台相关编码 + * 默认编码,使用平台相关编码 */ private static final Charset DEFAULT_CHARSET = CharsetUtils.defaultCharset(); /** - * 打包到当前目录,使用默认编码UTF-8 + * 打包到当前目录,使用默认编码UTF-8 * * @param srcPath 源文件路径 * @return 打包好的压缩文件 @@ -72,7 +72,7 @@ public static File zip(String srcPath, Charset charset) throws InstrumentExcepti } /** - * 打包到当前目录,使用默认编码UTF-8 + * 打包到当前目录,使用默认编码UTF-8 * * @param srcFile 源文件或目录 * @return 打包好的压缩文件 @@ -100,8 +100,8 @@ public static File zip(File srcFile, Charset charset) throws InstrumentException * 对文件或文件目录进行压缩 * 不包含被打包目录 * - * @param srcPath 要压缩的源文件路径。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径 - * @param zipPath 压缩文件保存的路径,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 + * @param srcPath 要压缩的源文件路径 如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径 + * @param zipPath 压缩文件保存的路径,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 * @return 压缩好的Zip文件 * @throws InstrumentException IO异常 */ @@ -112,8 +112,8 @@ public static File zip(String srcPath, String zipPath) throws InstrumentExceptio /** * 对文件或文件目录进行压缩 * - * @param srcPath 要压缩的源文件路径。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径 - * @param zipPath 压缩文件保存的路径,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 + * @param srcPath 要压缩的源文件路径 如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径 + * @param zipPath 压缩文件保存的路径,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 * @param withSrcDir 是否包含被打包目录 * @return 压缩文件 * @throws InstrumentException IO异常 @@ -125,8 +125,8 @@ public static File zip(String srcPath, String zipPath, boolean withSrcDir) throw /** * 对文件或文件目录进行压缩 * - * @param srcPath 要压缩的源文件路径。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径 - * @param zipPath 压缩文件保存的路径,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 + * @param srcPath 要压缩的源文件路径 如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径 + * @param zipPath 压缩文件保存的路径,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 * @param charset 编码 * @param withSrcDir 是否包含被打包目录 * @return 压缩文件 @@ -143,9 +143,9 @@ public static File zip(String srcPath, String zipPath, Charset charset, boolean * 对文件或文件目录进行压缩 * 使用默认UTF-8编码 * - * @param zipFile 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 - * @param withSrcDir 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩 - * @param srcFiles 要压缩的源文件或目录。 + * @param zipFile 生成的Zip文件,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 + * @param withSrcDir 是否包含被打包目录,只针对压缩目录有效 若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩 + * @param srcFiles 要压缩的源文件或目录 * @return 压缩文件 * @throws InstrumentException IO异常 */ @@ -156,10 +156,10 @@ public static File zip(File zipFile, boolean withSrcDir, File... srcFiles) throw /** * 对文件或文件目录进行压缩 * - * @param zipFile 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 + * @param zipFile 生成的Zip文件,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 * @param charset 编码 - * @param withSrcDir 是否包含被打包目录,只针对压缩目录有效。若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩 - * @param srcFiles 要压缩的源文件或目录。如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径 + * @param withSrcDir 是否包含被打包目录,只针对压缩目录有效 若为false,则只压缩目录下的文件或目录,为true则将本目录也压缩 + * @param srcFiles 要压缩的源文件或目录 如果压缩一个文件,则为该文件的全路径;如果压缩一个目录,则为该目录的顶层目录路径 * @return 压缩文件 * @throws InstrumentException IO异常 */ @@ -172,10 +172,10 @@ public static File zip(File zipFile, Charset charset, boolean withSrcDir, File.. if (null == srcFile) { continue; } - // 如果只是压缩一个文件,则需要截取该文件的父目录 + // 如果只是压缩一个文件,则需要截取该文件的父目录 srcRootDir = srcFile.getCanonicalPath(); if (srcFile.isFile() || withSrcDir) { - //若是文件,则将父目录完整路径都截取掉;若设置包含目录,则将上级目录全部截取掉,保留本目录名 + //若是文件,则将父目录完整路径都截取掉;若设置包含目录,则将上级目录全部截取掉,保留本目录名 srcRootDir = srcFile.getCanonicalFile().getParentFile().getCanonicalPath(); } // 调用递归压缩方法进行目录或文件压缩 @@ -189,9 +189,9 @@ public static File zip(File zipFile, Charset charset, boolean withSrcDir, File.. } /** - * 对流中的数据加入到压缩文件,使用默认UTF-8编码 + * 对流中的数据加入到压缩文件,使用默认UTF-8编码 * - * @param zipFile 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 + * @param zipFile 生成的Zip文件,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 * @param path 流数据在压缩文件中的路径或文件名 * @param data 要压缩的数据 * @return 压缩文件 @@ -205,7 +205,7 @@ public static File zip(File zipFile, String path, String data) throws Instrument /** * 对流中的数据加入到压缩文件 * - * @param zipFile 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 + * @param zipFile 生成的Zip文件,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 * @param path 流数据在压缩文件中的路径或文件名 * @param data 要压缩的数据 * @param charset 编码 @@ -221,7 +221,7 @@ public static File zip(File zipFile, String path, String data, Charset charset) * 对流中的数据加入到压缩文件 * 使用默认编码UTF-8 * - * @param zipFile 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 + * @param zipFile 生成的Zip文件,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 * @param path 流数据在压缩文件中的路径或文件名 * @param in 要压缩的源 * @return 压缩文件 @@ -235,7 +235,7 @@ public static File zip(File zipFile, String path, InputStream in) throws Instrum /** * 对流中的数据加入到压缩文件 * - * @param zipFile 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 + * @param zipFile 生成的Zip文件,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 * @param path 流数据在压缩文件中的路径或文件名 * @param in 要压缩的源 * @param charset 编码 @@ -251,7 +251,7 @@ public static File zip(File zipFile, String path, InputStream in, Charset charse * 对流中的数据加入到压缩文件 * 路径列表和流列表长度必须一致 * - * @param zipFile 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 + * @param zipFile 生成的Zip文件,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 * @param paths 流数据在压缩文件中的路径或文件名 * @param ins 要压缩的源 * @return 压缩文件 @@ -266,7 +266,7 @@ public static File zip(File zipFile, String[] paths, InputStream[] ins) throws I * 对流中的数据加入到压缩文件 * 路径列表和流列表长度必须一致 * - * @param zipFile 生成的Zip文件,包括文件名。注意:zipPath不能是srcPath路径下的子文件夹 + * @param zipFile 生成的Zip文件,包括文件名 注意:zipPath不能是srcPath路径下的子文件夹 * @param paths 流数据在压缩文件中的路径或文件名 * @param ins 要压缩的源 * @param charset 编码 @@ -295,7 +295,7 @@ public static File zip(File zipFile, String[] paths, InputStream[] ins, Charset } /** - * 解压到文件名相同的目录中,默认编码UTF-8 + * 解压到文件名相同的目录中,默认编码UTF-8 * * @param zipFilePath 压缩文件路径 * @return 解压的目录 @@ -319,7 +319,7 @@ public static File unzip(String zipFilePath, Charset charset) throws InstrumentE } /** - * 解压到文件名相同的目录中,使用UTF-8编码 + * 解压到文件名相同的目录中,使用UTF-8编码 * * @param zipFile 压缩文件 * @return 解压的目录 @@ -344,7 +344,7 @@ public static File unzip(File zipFile, Charset charset) throws InstrumentExcepti } /** - * 解压,默认UTF-8编码 + * 解压,默认UTF-8编码 * * @param zipFilePath 压缩文件的路径 * @param outFileDir 解压到的目录 @@ -369,7 +369,7 @@ public static File unzip(String zipFilePath, String outFileDir, Charset charset) } /** - * 解压,默认使用UTF-8编码 + * 解压,默认使用UTF-8编码 * * @param zipFile zip文件 * @param outFile 解压到的目录 @@ -397,12 +397,10 @@ public static File unzip(File zipFile, File outFile, Charset charset) throws Ins try { zipFileObj = new ZipFile(zipFile, charset); final Enumeration em = (Enumeration) zipFileObj.entries(); - ZipEntry zipEntry = null; - File outItemFile = null; while (em.hasMoreElements()) { - zipEntry = em.nextElement(); - //FileUtils.file会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ - outItemFile = FileUtils.file(outFile, zipEntry.getName()); + ZipEntry zipEntry = em.nextElement(); + //FileUtils.file会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ + File outItemFile = FileUtils.file(outFile, zipEntry.getName()); if (zipEntry.isDirectory()) { outItemFile.mkdirs(); } else { @@ -418,11 +416,93 @@ public static File unzip(File zipFile, File outFile, Charset charset) throws Ins return outFile; } + /** + * 解压 + * + * @param zipFile zip文件,附带编码信息,使用完毕自动关闭 + * @param outFile 解压到的目录 + * @return 解压的目录 + * @throws InstrumentException IO异常 + * @since 4.5.8 + */ + public static File unzip(ZipFile zipFile, File outFile) { + try { + final Enumeration em = (Enumeration) zipFile.entries(); + ZipEntry zipEntry; + File outItemFile; + while (em.hasMoreElements()) { + zipEntry = em.nextElement(); + // FileUtil.file会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ + outItemFile = buildFile(outFile, zipEntry.getName()); + if (zipEntry.isDirectory()) { + // 创建对应目录 + //noinspection ResultOfMethodCallIgnored + outItemFile.mkdirs(); + } else { + // 写出文件 + write(zipFile, zipEntry, outItemFile); + } + } + } finally { + IoUtils.close(zipFile); + } + return outFile; + } + + /** + * 解压
    + * ZIP条目不使用高速缓冲 + * + * @param in zip文件流,使用完毕自动关闭 + * @param outFile 解压到的目录 + * @param charset 编码 + * @return 解压的目录 + * @since 4.5.8 + */ + public static File unzip(InputStream in, File outFile, Charset charset) { + if (null == charset) { + charset = DEFAULT_CHARSET; + } + return unzip(new ZipInputStream(in, charset), outFile); + } + + /** + * 解压
    + * ZIP条目不使用高速缓冲 + * + * @param zipStream zip文件流,包含编码信息 + * @param outFile 解压到的目录 + * @return 解压的目录 + * @since 4.5.8 + */ + public static File unzip(ZipInputStream zipStream, File outFile) { + try { + ZipEntry zipEntry; + File outItemFile; + while (null != (zipEntry = zipStream.getNextEntry())) { + // FileUtil.file会检查slip漏洞,漏洞说明见http://blog.nsfocus.net/zip-slip-2/ + outItemFile = FileUtils.file(outFile, zipEntry.getName()); + if (zipEntry.isDirectory()) { + // 目录 + outItemFile.mkdirs(); + } else { + // 文件 + FileUtils.writeFromStream(zipStream, outItemFile); + } + } + } catch (IOException e) { + throw new InstrumentException(e); + } finally { + IoUtils.close(zipStream); + } + return outFile; + } + /** * 从Zip文件中提取指定的文件为bytes * * @param zipFilePath Zip文件 - * @param name 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt + * @param name 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt * @return 文件内容bytes */ public static byte[] unzipFileBytes(String zipFilePath, String name) { @@ -434,7 +514,7 @@ public static byte[] unzipFileBytes(String zipFilePath, String name) { * * @param zipFilePath Zip文件 * @param charset 编码 - * @param name 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt + * @param name 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt * @return 文件内容bytes */ public static byte[] unzipFileBytes(String zipFilePath, Charset charset, String name) { @@ -445,7 +525,7 @@ public static byte[] unzipFileBytes(String zipFilePath, Charset charset, String * 从Zip文件中提取指定的文件为bytes * * @param zipFile Zip文件 - * @param name 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt + * @param name 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt * @return 文件内容bytes */ public static byte[] unzipFileBytes(File zipFile, String name) { @@ -457,7 +537,7 @@ public static byte[] unzipFileBytes(File zipFile, String name) { * * @param zipFile Zip文件 * @param charset 编码 - * @param name 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt + * @param name 文件名,如果存在于子文件夹中,此文件名必须包含目录名,例如images/aaa.txt * @return 文件内容bytes */ public static byte[] unzipFileBytes(File zipFile, Charset charset, String name) { @@ -552,7 +632,7 @@ public static byte[] gzip(InputStream in, int length) throws InstrumentException } finally { IoUtils.close(gos); } - //返回必须在关闭gos后进行,因为关闭时会自动执行finish()方法,保证数据全部写出 + //返回必须在关闭gos后进行,因为关闭时会自动执行finish()方法,保证数据全部写出 return bos.toByteArray(); } @@ -594,7 +674,7 @@ public static byte[] unGzip(InputStream in) throws InstrumentException { * Gzip解压处理 * * @param in Gzip数据 - * @param length 估算长度,如果无法确定请传入{@link #DEFAULT_BYTE_ARRAY_LENGTH} + * @param length 估算长度,如果无法确定请传入{@link #DEFAULT_BYTE_ARRAY_LENGTH} * @return 解压后的数据 * @throws InstrumentException IO异常 */ @@ -610,7 +690,7 @@ public static byte[] unGzip(InputStream in, int length) throws InstrumentExcepti } finally { IoUtils.close(gzi); } - //返回必须在关闭gos后进行,因为关闭时会自动执行finish()方法,保证数据全部写出 + //返回必须在关闭gos后进行,因为关闭时会自动执行finish()方法,保证数据全部写出 return bos.toByteArray(); } @@ -619,7 +699,7 @@ public static byte[] unGzip(InputStream in, int length) throws InstrumentExcepti * * @param content 被压缩的字符串 * @param charset 编码 - * @param level 压缩级别,1~9 + * @param level 压缩级别,1~9 * @return 压缩后的字节流 */ public static byte[] zlib(String content, String charset, int level) { @@ -647,7 +727,7 @@ public static byte[] zlib(File file, int level) { * 打成Zlib压缩包 * * @param buf 数据 - * @param level 压缩级别,0~9 + * @param level 压缩级别,0~9 * @return 压缩后的bytes */ public static byte[] zlib(byte[] buf, int level) { @@ -658,7 +738,7 @@ public static byte[] zlib(byte[] buf, int level) { * 打成Zlib压缩包 * * @param in 数据流 - * @param level 压缩级别,0~9 + * @param level 压缩级别,0~9 * @return 压缩后的bytes */ public static byte[] zlib(InputStream in, int level) { @@ -669,7 +749,7 @@ public static byte[] zlib(InputStream in, int level) { * 打成Zlib压缩包 * * @param in 数据流 - * @param level 压缩级别,0~9 + * @param level 压缩级别,0~9 * @param length 预估大小 * @return 压缩后的bytes */ @@ -748,8 +828,8 @@ private static ZipOutputStream getZipOutputStream(OutputStream out, Charset char /** * 递归压缩文件夹 - * srcRootDir决定了路径截取的位置,例如: - * file的路径为d:/a/b/c/d.txt,srcRootDir为d:/a/b,则压缩后的文件与目录为结构为c/d.txt + * srcRootDir决定了路径截取的位置,例如: + * file的路径为d:/a/b/c/d.txt,srcRootDir为d:/a/b,则压缩后的文件与目录为结构为c/d.txt * * @param out 压缩文件存储对象 * @param srcRootDir 被压缩的文件夹根目录 @@ -762,17 +842,17 @@ private static void zip(File file, String srcRootDir, ZipOutputStream out) throw } final String subPath = FileUtils.subPath(srcRootDir, file); // 获取文件相对于压缩文件夹根目录的子路径 - if (file.isDirectory()) {// 如果是目录,则压缩压缩目录中的文件或子目录 + if (file.isDirectory()) {// 如果是目录,则压缩压缩目录中的文件或子目录 final File[] files = file.listFiles(); if (ArrayUtils.isEmpty(files) && StringUtils.isNotEmpty(subPath)) { - // 加入目录,只有空目录时才加入目录,非空时会在创建文件时自动添加父级目录 + // 加入目录,只有空目录时才加入目录,非空时会在创建文件时自动添加父级目录 addDir(subPath, out); } // 压缩目录下的子文件或目录 for (File childFile : files) { zip(childFile, srcRootDir, out); } - } else {// 如果是文件或其它符号,则直接压缩该文件 + } else {// 如果是文件或其它符号,则直接压缩该文件 addFile(file, subPath, out); } } @@ -796,7 +876,7 @@ private static void addFile(File file, String path, ZipOutputStream out) throws } /** - * 添加文件流到压缩包,不关闭输入流 + * 添加文件流到压缩包,不关闭输入流 * * @param in 需要压缩的输入流 * @param path 压缩的路径 @@ -836,7 +916,7 @@ private static void addDir(String path, ZipOutputStream out) throws InstrumentEx } /** - * 判断压缩文件保存的路径是否为源文件路径的子文件夹,如果是,则抛出异常(防止无限递归压缩的发生) + * 判断压缩文件保存的路径是否为源文件路径的子文件夹,如果是,则抛出异常(防止无限递归压缩的发生) * * @param zipFile 压缩后的产生的文件路径 * @param srcFiles 被压缩的文件或目录 @@ -868,7 +948,7 @@ private static void validateFiles(File zipFile, File... srcFiles) throws Instrum } /** - * 关闭当前Entry,继续下一个Entry + * 关闭当前Entry,继续下一个Entry * * @param out ZipOutputStream */ @@ -922,7 +1002,7 @@ private static void inflater(InputStream in, OutputStream out) { * * @param in zlib数据流 * @param out 输出 - * @param level 压缩级别,0~9 + * @param level 压缩级别,0~9 */ private static void deflater(InputStream in, OutputStream out, int level) { final DeflaterOutputStream ios = (out instanceof DeflaterOutputStream) ? (DeflaterOutputStream) out : new DeflaterOutputStream(out, new Deflater(level, true)); @@ -934,4 +1014,48 @@ private static void deflater(InputStream in, OutputStream out, int level) { } } + /** + * 根据压缩包中的路径构建目录结构,在Win下直接构建,在Linux下拆分路径单独构建 + * + * @param outFile 最外部路径 + * @param fileName 文件名,可以包含路径 + * @return 文件或目录 + * @since 5.0.5 + */ + private static File buildFile(File outFile, String fileName) { + if (false == FileUtils.isWindows() && StringUtils.contains(fileName, Symbol.C_SLASH)) { + // 在Linux下多层目录创建存在问题,/会被当成文件名的一部分,此处做处理 + // 使用/拆分路径(zip中无\),级联创建父目录 + final String[] pathParts = StringUtils.splitToArray(fileName, Symbol.C_SLASH); + for (int i = 0; i < pathParts.length - 1; i++) { + //由于路径拆分,slip不检查,在最后一步检查 + outFile = new File(outFile, pathParts[i]); + } + //noinspection ResultOfMethodCallIgnored + outFile.mkdirs(); + // 最后一个部分作为文件名 + fileName = pathParts[pathParts.length - 1]; + } + return FileUtils.file(outFile, fileName); + } + + /** + * 从Zip中读取文件流并写出到文件 + * + * @param zipFile Zip文件 + * @param zipEntry zip文件中的子文件 + * @param outItemFile 输出到的文件 + */ + private static void write(ZipFile zipFile, ZipEntry zipEntry, File outItemFile) { + InputStream in = null; + try { + in = zipFile.getInputStream(zipEntry); + FileUtils.writeFromStream(in, outItemFile); + } catch (IOException e) { + throw new InstrumentException(e); + } finally { + IoUtils.close(in); + } + } + } diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/CronTimer.java b/bus-cron/src/main/java/org/aoju/bus/cron/CronTimer.java index 666a5a38b0..7a83b2cf5c 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/CronTimer.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/CronTimer.java @@ -28,7 +28,7 @@ /** * 定时任务计时器 - * 计时器线程每隔一分钟检查一次任务列表,一旦匹配到执行对应的Task + * 计时器线程每隔一分钟检查一次任务列表,一旦匹配到执行对应的Task * * @author Kimi Liu * @version 5.2.2 @@ -72,11 +72,11 @@ public void run() { nextTime = ((thisTime / timerUnit) + 1) * timerUnit; sleep = nextTime - System.currentTimeMillis(); if (sleep > 0 && false == ThreadUtils.safeSleep(sleep)) { - //等待直到下一个时间点,如果被中断直接退出Timer + //等待直到下一个时间点,如果被中断直接退出Timer break; } - //执行点,时间记录为执行开始的时间,而非结束时间 + //执行点,时间记录为执行开始的时间,而非结束时间 thisTime = System.currentTimeMillis(); spawnLauncher(thisTime); } diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/CronUtils.java b/bus-cron/src/main/java/org/aoju/bus/cron/CronUtils.java index bdd0970965..336d7e3d74 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/CronUtils.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/CronUtils.java @@ -38,8 +38,8 @@ /** * 定时任务工具类 - * 此工具持有一个全局{@link Scheduler},所有定时任务在同一个调度器中执行 - * {@link #setMatchSecond(boolean)} 方法用于定义是否使用秒匹配模式,如果为true,则定时任务表达式中的第一位为秒,否则为分,默认是分 + * 此工具持有一个全局{@link Scheduler},所有定时任务在同一个调度器中执行 + * {@link #setMatchSecond(boolean)} 方法用于定义是否使用秒匹配模式,如果为true,则定时任务表达式中的第一位为秒,否则为分,默认是分 * * @author Kimi Liu * @version 5.2.2 @@ -82,9 +82,9 @@ public static void setCronSetting(String cronSettingPath) { /** * 设置是否支持秒匹配 - * 此方法用于定义是否使用秒匹配模式,如果为true,则定时任务表达式中的第一位为秒,否则为分,默认是分 + * 此方法用于定义是否使用秒匹配模式,如果为true,则定时任务表达式中的第一位为秒,否则为分,默认是分 * - * @param isMatchSecond true支持,false不支持 + * @param isMatchSecond true支持,false不支持 */ public static void setMatchSecond(boolean isMatchSecond) { scheduler.setMatchSecond(isMatchSecond); @@ -162,7 +162,7 @@ public static Scheduler getScheduler() { } /** - * 开始,非守护线程模式 + * 开始,非守护线程模式 * * @see #start(boolean) */ @@ -173,7 +173,7 @@ public static void start() { /** * 开始 * - * @param isDeamon 是否以守护线程方式启动,如果为true,则在调用{@link #stop()}方法后执行的定时任务立即结束,否则等待执行完毕才结束。 + * @param isDeamon 是否以守护线程方式启动,如果为true,则在调用{@link #stop()}方法后执行的定时任务立即结束,否则等待执行完毕才结束 */ synchronized public static void start(boolean isDeamon) { if (null == crontabSetting) { @@ -189,7 +189,7 @@ synchronized public static void start(boolean isDeamon) { /** * 重新启动定时任务 - * 此方法会清除动态加载的任务,重新启动后,守护线程与否与之前保持一致 + * 此方法会清除动态加载的任务,重新启动后,守护线程与否与之前保持一致 */ synchronized public static void restart() { if (null != crontabSetting) { diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/Scheduler.java b/bus-cron/src/main/java/org/aoju/bus/cron/Scheduler.java index 53338a8742..1702c64c92 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/Scheduler.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/Scheduler.java @@ -61,12 +61,12 @@ * 其中: * *
    - * TaskLauncher:定时器每分钟调用一次(如果{@link Scheduler#isMatchSecond()}为true每秒调用一次),
    + * TaskLauncher:定时器每分钟调用一次(如果{@link Scheduler#isMatchSecond()}为true每秒调用一次),
      * 负责检查TaskTable是否有匹配到此时间运行的Task
      * 
    * *
    - * TaskExecutor:TaskLauncher匹配成功后,触发TaskExecutor执行具体的作业,执行完毕销毁
    + * TaskExecutor:TaskLauncher匹配成功后,触发TaskExecutor执行具体的作业,执行完毕销毁
      * 
    * * @author Kimi Liu @@ -117,7 +117,7 @@ public class Scheduler { private CronTimer timer; /** - * 获得时区,默认为 {@link TimeZone#getDefault()} + * 获得时区,默认为 {@link TimeZone#getDefault()} * * @return 时区 */ @@ -138,9 +138,9 @@ public Scheduler setTimeZone(TimeZone timezone) { /** * 设置是否为守护线程 - * 如果为true,则在调用{@link #stop()}方法后执行的定时任务立即结束,否则等待执行完毕才结束。默认非守护线程 + * 如果为true,则在调用{@link #stop()}方法后执行的定时任务立即结束,否则等待执行完毕才结束 默认非守护线程 * - * @param on true为守护线程,否则非守护线程 + * @param on true为守护线程,否则非守护线程 * @return this * @throws InstrumentException 定时任务已经启动抛出此异常 */ @@ -166,16 +166,16 @@ public boolean isDeamon() { /** * 是否支持秒匹配 * - * @return true使用,false不使用 + * @return true使用,false不使用 */ public boolean isMatchSecond() { return this.matchSecond; } /** - * 设置是否支持秒匹配,默认不使用 + * 设置是否支持秒匹配,默认不使用 * - * @param isMatchSecond true支持,false不支持 + * @param isMatchSecond true支持,false不支持 * @return this */ public Scheduler setMatchSecond(boolean isMatchSecond) { @@ -235,7 +235,7 @@ public Scheduler schedule(Setting cronSetting) { } /** - * 新增Task,使用随机UUID + * 新增Task,使用随机UUID * * @param pattern {@link CronPattern}对应的String表达式 * @param task {@link Runnable} @@ -246,7 +246,7 @@ public String schedule(String pattern, Runnable task) { } /** - * 新增Task,使用随机UUID + * 新增Task,使用随机UUID * * @param pattern {@link CronPattern}对应的String表达式 * @param task {@link Task} @@ -261,7 +261,7 @@ public String schedule(String pattern, Task task) { /** * 新增Task * - * @param id ID,为每一个Task定义一个ID + * @param id ID,为每一个Task定义一个ID * @param pattern {@link CronPattern}对应的String表达式 * @param task {@link Runnable} * @return this @@ -273,7 +273,7 @@ public Scheduler schedule(String id, String pattern, Runnable task) { /** * 新增Task * - * @param id ID,为每一个Task定义一个ID + * @param id ID,为每一个Task定义一个ID * @param pattern {@link CronPattern}对应的String表达式 * @param task {@link Task} * @return this @@ -285,7 +285,7 @@ public Scheduler schedule(String id, String pattern, Task task) { /** * 新增Task * - * @param id ID,为每一个Task定义一个ID + * @param id ID,为每一个Task定义一个ID * @param pattern {@link CronPattern} * @param task {@link Task} * @return this @@ -378,7 +378,7 @@ public boolean isStarted() { /** * 启动 * - * @param isDeamon 是否以守护线程方式启动,如果为true,则在调用{@link #stop()}方法后执行的定时任务立即结束,否则等待执行完毕才结束。 + * @param isDeamon 是否以守护线程方式启动,如果为true,则在调用{@link #stop()}方法后执行的定时任务立即结束,否则等待执行完毕才结束 * @return this */ public Scheduler start(boolean isDeamon) { @@ -414,8 +414,8 @@ public Scheduler start() { /** * 停止定时任务 - * 此方法调用后会将定时器进程立即结束,如果为守护线程模式,则正在执行的作业也会自动结束,否则作业线程将在执行完成后结束。 - * 此方法并不会清除任务表中的任务,请调用{@link #clear()} 方法清空任务或者使用{@link #stop(boolean)}方法可选是否清空 + * 此方法调用后会将定时器进程立即结束,如果为守护线程模式,则正在执行的作业也会自动结束,否则作业线程将在执行完成后结束 + * 此方法并不会清除任务表中的任务,请调用{@link #clear()} 方法清空任务或者使用{@link #stop(boolean)}方法可选是否清空 * * @return this */ @@ -425,7 +425,7 @@ public Scheduler stop() { /** * 停止定时任务 - * 此方法调用后会将定时器进程立即结束,如果为守护线程模式,则正在执行的作业也会自动结束,否则作业线程将在执行完成后结束。 + * 此方法调用后会将定时器进程立即结束,如果为守护线程模式,则正在执行的作业也会自动结束,否则作业线程将在执行完成后结束 * * @param clearTasks 标记 * @return this diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/TaskExecutor.java b/bus-cron/src/main/java/org/aoju/bus/cron/TaskExecutor.java index 5695408d2e..520549f103 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/TaskExecutor.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/TaskExecutor.java @@ -27,7 +27,7 @@ /** * 作业执行器 - * 执行具体的作业,执行完毕销毁 + * 执行具体的作业,执行完毕销毁 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/TaskExecutorManager.java b/bus-cron/src/main/java/org/aoju/bus/cron/TaskExecutorManager.java index c8987d3c78..921c2086b6 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/TaskExecutorManager.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/TaskExecutorManager.java @@ -59,7 +59,7 @@ public TaskExecutor spawnExecutor(Task task) { synchronized (this.executors) { this.executors.add(executor); } - // 子线程是否为deamon线程取决于父线程,因此此处无需显示调用 + // 子线程是否为deamon线程取决于父线程,因此此处无需显示调用 // executor.setDaemon(this.scheduler.daemon); // executor.start(); this.scheduler.threadExecutor.execute(executor); @@ -67,7 +67,7 @@ public TaskExecutor spawnExecutor(Task task) { } /** - * 执行器执行完毕调用此方法,将执行器从执行器列表移除 + * 执行器执行完毕调用此方法,将执行器从执行器列表移除 * * @param executor 执行器 {@link TaskExecutor} * @return this diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/TaskLauncher.java b/bus-cron/src/main/java/org/aoju/bus/cron/TaskLauncher.java index 5ed16c1314..1f7c2a474d 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/TaskLauncher.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/TaskLauncher.java @@ -44,7 +44,7 @@ public TaskLauncher(Scheduler scheduler, long millis) { @Override public void run() { - //匹配秒部分由用户定义决定,始终不匹配年 + //匹配秒部分由用户定义决定,始终不匹配年 scheduler.taskTable.executeTaskIfMatchInternal(millis); //结束通知 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/TaskLauncherManager.java b/bus-cron/src/main/java/org/aoju/bus/cron/TaskLauncherManager.java index 6ab94e37ed..15b05a26d5 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/TaskLauncherManager.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/TaskLauncherManager.java @@ -56,7 +56,7 @@ protected TaskLauncher spawnLauncher(long millis) { synchronized (this.launchers) { this.launchers.add(launcher); } - //子线程是否为deamon线程取决于父线程,因此此处无需显示调用 + //子线程是否为deamon线程取决于父线程,因此此处无需显示调用 //launcher.setDaemon(this.scheduler.daemon); // launcher.start(); this.scheduler.threadExecutor.execute(launcher); @@ -64,7 +64,7 @@ protected TaskLauncher spawnLauncher(long millis) { } /** - * 启动器启动完毕,启动完毕后从执行器列表中移除 + * 启动器启动完毕,启动完毕后从执行器列表中移除 * * @param launcher 启动器 {@link TaskLauncher} */ diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/TaskTable.java b/bus-cron/src/main/java/org/aoju/bus/cron/TaskTable.java index a7863ee367..a74d080c76 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/TaskTable.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/TaskTable.java @@ -35,7 +35,7 @@ /** * 定时任务表 - * 任务表将ID、表达式、任务一一对应,定时任务执行过程中,会周期性检查定时任务表中的所有任务表达式匹配情况,从而执行其对应的任务 + * 任务表将ID、表达式、任务一一对应,定时任务执行过程中,会周期性检查定时任务表中的所有任务表达式匹配情况,从而执行其对应的任务 * 任务的添加、移除使用读写锁保证线程安全性 * * @author Kimi Liu @@ -115,7 +115,7 @@ public void remove(String id) { * * @param id Task的ID * @param pattern 新的表达式 - * @return 是否更新成功,如果id对应的规则不存在则不更新 + * @return 是否更新成功, 如果id对应的规则不存在则不更新 */ public boolean updatePattern(String id, CronPattern pattern) { final Lock writeLock = lock.writeLock(); @@ -182,9 +182,9 @@ public CronPattern getPattern(int index) { } /** - * 任务表大小,加入的任务数 + * 任务表大小,加入的任务数 * - * @return 任务表大小,加入的任务数 + * @return 任务表大小, 加入的任务数 */ public int size() { return this.size; @@ -215,7 +215,7 @@ public CronPattern getPattern(String id) { } /** - * 如果时间匹配则执行相应的Task,带读锁 + * 如果时间匹配则执行相应的Task,带读锁 * * @param millis 时间毫秒 */ @@ -230,7 +230,7 @@ public void executeTaskIfMatch(long millis) { } /** - * 如果时间匹配则执行相应的Task,无锁 + * 如果时间匹配则执行相应的Task,无锁 * * @param millis 时间毫秒 * @since 3.1.1 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/listener/SimpleTaskListener.java b/bus-cron/src/main/java/org/aoju/bus/cron/listener/SimpleTaskListener.java index 51d07f0199..9222495750 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/listener/SimpleTaskListener.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/listener/SimpleTaskListener.java @@ -26,7 +26,7 @@ import org.aoju.bus.cron.TaskExecutor; /** - * 简单监听实现,不做任何操作 + * 简单监听实现,不做任何操作 * 继承此监听后实现需要的方法即可 * * @author Kimi Liu diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/listener/TaskListener.java b/bus-cron/src/main/java/org/aoju/bus/cron/listener/TaskListener.java index 2d93e30139..a3377e1e84 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/listener/TaskListener.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/listener/TaskListener.java @@ -27,7 +27,7 @@ /** * 定时任务监听接口 - * 通过实现此接口,实现对定时任务的各个环节做监听 + * 通过实现此接口,实现对定时任务的各个环节做监听 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/listener/TaskListenerManager.java b/bus-cron/src/main/java/org/aoju/bus/cron/listener/TaskListenerManager.java index 1ba308c942..1d094ab9c6 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/listener/TaskListenerManager.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/listener/TaskListenerManager.java @@ -29,7 +29,7 @@ import java.util.List; /** - * 监听调度器,统一管理监听 + * 监听调度器,统一管理监听 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/CronPattern.java b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/CronPattern.java index 55697e4c15..07b55e4849 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/CronPattern.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/CronPattern.java @@ -36,23 +36,23 @@ /** * 定时任务表达式 - * 表达式类似于Linux的crontab表达式,表达式使用空格分成5个部分,按顺序依次为: + * 表达式类似于Linux的crontab表达式,表达式使用空格分成5个部分,按顺序依次为: *
      *
    1. :范围:0~59
    2. *
    3. :范围:0~23
    4. - *
    5. :范围:1~31,"L"表示月的最后一天
    6. - *
    7. :范围:1~12,同时支持不区分大小写的别名:"jan","feb", "mar", "apr", "may","jun", "jul", "aug", "sep","oct", "nov", "dec"
    8. - *
    9. :范围:0 (Sunday)~6(Saturday),7也可以表示周日,同时支持不区分大小写的别名:"sun","mon", "tue", "wed", "thu","fri", "sat","L"表示周六
    10. + *
    11. :范围:1~31,"L"表示月的最后一天
    12. + *
    13. :范围:1~12,同时支持不区分大小写的别名:"jan","feb", "mar", "apr", "may","jun", "jul", "aug", "sep","oct", "nov", "dec"
    14. + *
    15. :范围:0 (Sunday)~6(Saturday),7也可以表示周日,同时支持不区分大小写的别名:"sun","mon", "tue", "wed", "thu","fri", "sat","L"表示周六
    16. *
    *

    - * 为了兼容Quartz表达式,同时支持6位和7位表达式,其中: + * 为了兼容Quartz表达式,同时支持6位和7位表达式,其中: * *

    - * 当为6位时,第一位表示,范围0~59,但是第一位不做匹配
    - * 当为7位时,最后一位表示,范围1970~2099,但是第7位不做解析,也不做匹配
    + * 当为6位时,第一位表示,范围0~59,但是第一位不做匹配
    + * 当为7位时,最后一位表示,范围1970~2099,但是第7位不做解析,也不做匹配
      * 
    *

    - * 当定时任务运行到的时间匹配这些表达式后,任务被启动。 + * 当定时任务运行到的时间匹配这些表达式后,任务被启动 * 注意: * *

    @@ -61,12 +61,12 @@
      * 默认都是关闭的
      * 
    *

    - * 对于每一个子表达式,同样支持以下形式: + * 对于每一个子表达式,同样支持以下形式: *

      *
    • *:表示匹配这个位置所有的时间
    • *
    • ?:表示匹配这个位置任意的时间(与"*"作用一致)
    • - *
    • */2:表示间隔时间,例如在分上,表示每两分钟,同样*可以使用数字列表代替,逗号分隔
    • - *
    • 2-8:表示连续区间,例如在分上,表示2,3,4,5,6,7,8分
    • + *
    • */2:表示间隔时间,例如在分上,表示每两分钟,同样*可以使用数字列表代替,逗号分隔
    • + *
    • 2-8:表示连续区间,例如在分上,表示2,3,4,5,6,7,8分
    • *
    • 2,3,5,8:表示列表
    • *
    • cronA | cronB:表示多个定时表达式
    • *
    @@ -76,17 +76,17 @@ * 间隔(/) > 区间(-) > 列表(,) *
    *

    - * 例如 2,3,6/3中,由于“/”优先级高,因此相当于2,3,(6/3),结果与 2,3,6等价 + * 例如 2,3,6/3中,由于“/”优先级高,因此相当于2,3,(6/3),结果与 2,3,6等价 * *

    * 一些例子: *

      - *
    • 5 * * * *:每个点钟的5分执行,00:05,01:05……
    • + *
    • 5 * * * *:每个点钟的5分执行,00:05,01:05……
    • *
    • * * * * *:每分钟执行
    • *
    • */2 * * * *:每两小时执行
    • *
    • * 12 * * *:12点的每分钟执行
    • *
    • 59 11 * * 1,2:每周一和周二的11:59执行
    • - *
    • 3-18/5 * * * *:3~18分,每5分钟执行一次,既0:03, 0:08, 0:13, 0:18, 1:03, 1:08……
    • + *
    • 3-18/5 * * * *:3~18分,每5分钟执行一次,既0:03, 0:08, 0:13, 0:18, 1:03, 1:08……
    • *
    * * @author Kimi Liu @@ -134,7 +134,7 @@ public class CronPattern { */ private List yearMatchers = new ArrayList<>(); /** - * 匹配器个数,取决于复合任务表达式中的单一表达式个数 + * 匹配器个数,取决于复合任务表达式中的单一表达式个数 */ private int matcherSize; @@ -214,7 +214,7 @@ public boolean match(GregorianCalendar calendar, boolean isMatchSecond) { final int hour = calendar.get(Calendar.HOUR_OF_DAY); final int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); final int month = calendar.get(Calendar.MONTH) + 1;// 月份从1开始 - final int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 星期从0开始,0和7都表示周日 + final int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1; // 星期从0开始,0和7都表示周日 final int year = calendar.get(Calendar.YEAR); boolean eval; @@ -258,7 +258,7 @@ private void parseGroupPattern(String groupPattern) { private void parseSinglePattern(String pattern) { final String[] parts = pattern.split("\\s"); - int offset = 0;// 偏移量用于兼容Quartz表达式,当表达式有6或7项时,第一项为秒 + int offset = 0;// 偏移量用于兼容Quartz表达式,当表达式有6或7项时,第一项为秒 if (parts.length == 6 || parts.length == 7) { offset = 1; } else if (parts.length != 5) { @@ -272,7 +272,7 @@ private void parseSinglePattern(String pattern) { } catch (Exception e) { throw new InstrumentException("Invalid pattern [{}], parsing 'second' field error!", pattern); } - } else {// 不支持秒的表达式,则第一位按照表达式生成时间的秒数赋值,表示整分匹配 + } else {// 不支持秒的表达式,则第一位按照表达式生成时间的秒数赋值,表示整分匹配 this.secondMatchers.add(ValueMatcherBuilder.build(String.valueOf(DateUtils.date().second()), SECOND_VALUE_PARSER)); } // 分 @@ -312,7 +312,7 @@ private void parseSinglePattern(String pattern) { } catch (Exception e) { throw new InstrumentException("Invalid pattern [{}], parsing 'year' field error!", pattern); } - } else {// 不支持年的表达式,全部匹配 + } else {// 不支持年的表达式,全部匹配 this.secondMatchers.add(new AlwaysTrueValueMatcher()); } matcherSize++; diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/AlwaysTrueValueMatcher.java b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/AlwaysTrueValueMatcher.java index d2b371cc6e..8368513d28 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/AlwaysTrueValueMatcher.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/AlwaysTrueValueMatcher.java @@ -27,7 +27,7 @@ import org.aoju.bus.core.utils.StringUtils; /** - * 值匹配,始终返回true + * 值匹配,始终返回true * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/BoolArrayValueMatcher.java b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/BoolArrayValueMatcher.java index 6f901f4cc1..f8499ac064 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/BoolArrayValueMatcher.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/BoolArrayValueMatcher.java @@ -29,7 +29,7 @@ import java.util.List; /** - * 将表达式中的数字值列表转换为Boolean数组,匹配时匹配相应数组位 + * 将表达式中的数字值列表转换为Boolean数组,匹配时匹配相应数组位 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/DayOfMonthValueMatcher.java b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/DayOfMonthValueMatcher.java index 49adf90113..aceae64a48 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/DayOfMonthValueMatcher.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/DayOfMonthValueMatcher.java @@ -27,7 +27,7 @@ /** * 每月第几天匹配 - * 考虑每月的天数不同,切存在闰年情况,日匹配单独使用 + * 考虑每月的天数不同,切存在闰年情况,日匹配单独使用 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/ValueMatcherBuilder.java b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/ValueMatcherBuilder.java index c090d6c449..3556645918 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/ValueMatcherBuilder.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/ValueMatcherBuilder.java @@ -36,7 +36,7 @@ import java.util.List; /** - * {@link ValueMatcher} 构建器,用于构建表达式中每一项的匹配器 + * {@link ValueMatcher} 构建器,用于构建表达式中每一项的匹配器 * * @author Kimi Liu * @version 5.2.2 @@ -54,7 +54,7 @@ public class ValueMatcherBuilder { */ public static ValueMatcher build(String value, ValueParser parser) { if (isMatchAllStr(value)) { - //兼容Quartz的"?"表达式,不会出现互斥情况,与"*"作用相同 + //兼容Quartz的"?"表达式,不会出现互斥情况,与"*"作用相同 return new AlwaysTrueValueMatcher(); } @@ -64,10 +64,10 @@ public static ValueMatcher build(String value, ValueParser parser) { } if (parser instanceof DayOfMonthValueParser) { - //考虑每月的天数不同,且存在闰年情况,日匹配单独使用 + //考虑每月的天数不同,且存在闰年情况,日匹配单独使用 return new DayOfMonthValueMatcher(values); } else if (parser instanceof YearValueParser) { - //考虑年数字太大,不适合boolean数组,单独使用列表遍历匹配 + //考虑年数字太大,不适合boolean数组,单独使用列表遍历匹配 return new YearValueMatcher(values); } else { return new BoolArrayValueMatcher(values); @@ -148,7 +148,7 @@ private static List parseRange(String value, int step, ValueParser pars // 全部匹配形式 if (value.length() <= 2) { - //根据步进的第一个数字确定起始时间,类似于 12/3则从12(秒、分等)开始 + //根据步进的第一个数字确定起始时间,类似于 12/3则从12(秒、分等)开始 int minValue = parser.getMin(); if (false == isMatchAllStr(value)) { try { @@ -157,7 +157,7 @@ private static List parseRange(String value, int step, ValueParser pars throw new InstrumentException("Invalid field value: [{}]", value); } } else { - //在全匹配模式下,如果步进不存在,表示步进为1 + //在全匹配模式下,如果步进不存在,表示步进为1 if (step < 1) { step = 1; } @@ -192,15 +192,15 @@ private static List parseRange(String value, int step, ValueParser pars final int v1 = parser.parse(parts.get(0)); final int v2 = parser.parse(parts.get(1)); if (step < 1) { - //在range模式下,如果步进不存在,表示步进为1 + //在range模式下,如果步进不存在,表示步进为1 step = 1; } - if (v1 < v2) {// 正常范围,例如:2-5 + if (v1 < v2) {// 正常范围,例如:2-5 NumberUtils.appendRange(v1, v2, step, results); - } else if (v1 > v2) {// 逆向范围,反选模式,例如:5-2 + } else if (v1 > v2) {// 逆向范围,反选模式,例如:5-2 NumberUtils.appendRange(v1, parser.getMax(), step, results); NumberUtils.appendRange(parser.getMin(), v2, step, results); - } else {// v1 == v2,此时与单值模式一致 + } else {// v1 == v2,此时与单值模式一致 if (step > 0) {//类似 20/2的形式 NumberUtils.appendRange(v1, parser.getMax(), step, results); } else { diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/YearValueMatcher.java b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/YearValueMatcher.java index 32a667f4b1..eb9547239b 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/YearValueMatcher.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/matcher/YearValueMatcher.java @@ -27,7 +27,7 @@ /** * 年匹配 - * 考虑年数字太大,不适合boolean数组,单独使用列表遍历匹配 + * 考虑年数字太大,不适合boolean数组,单独使用列表遍历匹配 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/DayOfMonthValueParser.java b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/DayOfMonthValueParser.java index d2748d3cdd..037857210d 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/DayOfMonthValueParser.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/DayOfMonthValueParser.java @@ -27,7 +27,7 @@ /** * 每月的几号值处理 - * 每月最多31天,32和“L”都表示最后一天 + * 每月最多31天,32和“L”都表示最后一天 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/DayOfWeekValueParser.java b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/DayOfWeekValueParser.java index 0c6bda6cec..b280c7d6b6 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/DayOfWeekValueParser.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/DayOfWeekValueParser.java @@ -27,7 +27,7 @@ /** * 星期值处理 - * 1表示星期一,2表示星期二,依次类推,0和7都可以表示星期日 + * 1表示星期一,2表示星期二,依次类推,0和7都可以表示星期日 * * @author Kimi Liu * @version 5.2.2 @@ -46,7 +46,7 @@ public DayOfWeekValueParser() { /** * 对于星期提供转换 - * 1表示星期一,2表示星期二,依次类推,0和7都可以表示星期日 + * 1表示星期一,2表示星期二,依次类推,0和7都可以表示星期日 */ @Override public int parse(String value) throws InstrumentException { diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/SimpleValueParser.java b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/SimpleValueParser.java index 40d08fe145..dce4ad5b60 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/SimpleValueParser.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/SimpleValueParser.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.lang.exception.InstrumentException; /** - * 简易值转换器。将给定String值转为int + * 简易值转换器 将给定String值转为int * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/ValueParser.java b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/ValueParser.java index b3ac36b421..a2e7416352 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/ValueParser.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/pattern/parser/ValueParser.java @@ -25,7 +25,7 @@ /** * 值处理接口 - * 值处理用于限定表达式中相应位置的值范围,并转换表达式值为int值 + * 值处理用于限定表达式中相应位置的值范围,并转换表达式值为int值 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/task/InvokeTask.java b/bus-cron/src/main/java/org/aoju/bus/cron/task/InvokeTask.java index e2107da63d..bc1c799080 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/task/InvokeTask.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/task/InvokeTask.java @@ -32,8 +32,8 @@ /** * 反射执行任务 - * 通过传入类名#方法名,通过反射执行相应的方法 - * 如果是静态方法直接执行,如果是对象方法,需要类有默认的构造方法。 + * 通过传入类名#方法名,通过反射执行相应的方法 + * 如果是静态方法直接执行,如果是对象方法,需要类有默认的构造方法 * * @author Kimi Liu * @version 5.2.2 @@ -48,7 +48,7 @@ public class InvokeTask implements Task { /** * 构造 * - * @param classNameWithMethodName 类名与方法名的字符串表示,方法名和类名使用#隔开或者.隔开 + * @param classNameWithMethodName 类名与方法名的字符串表示,方法名和类名使用#隔开或者.隔开 */ public InvokeTask(String classNameWithMethodName) { int splitIndex = classNameWithMethodName.lastIndexOf('#'); diff --git a/bus-cron/src/main/java/org/aoju/bus/cron/task/Task.java b/bus-cron/src/main/java/org/aoju/bus/cron/task/Task.java index 4852ef8bb2..098f66ef7f 100755 --- a/bus-cron/src/main/java/org/aoju/bus/cron/task/Task.java +++ b/bus-cron/src/main/java/org/aoju/bus/cron/task/Task.java @@ -24,7 +24,7 @@ package org.aoju.bus.cron.task; /** - * 定时作业接口,通过实现execute方法执行具体的任务 + * 定时作业接口,通过实现execute方法执行具体的任务 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/Builder.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/Builder.java index 0effca345f..a8a300f363 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/Builder.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/Builder.java @@ -81,9 +81,9 @@ /** * 安全相关工具类 * 加密分为三种: - * 1、对称加密(symmetric),例如:AES、DES等 - * 2、非对称加密(asymmetric),例如:RSA、DSA等 - * 3、摘要加密(digest),例如:MD5、SHA-1、SHA-256、HMAC等 + * 1、对称加密(symmetric),例如:AES、DES等 + * 2、非对称加密(asymmetric),例如:RSA、DSA等 + * 3、摘要加密(digest),例如:MD5、SHA-1、SHA-256、HMAC等 * * @author Kimi Liu * @version 5.2.2 @@ -176,7 +176,7 @@ public static InputStream decrypt(String algorithm, String key, InputStream inpu } /** - * 解码字符串密钥,可支持的编码如下: + * 解码字符串密钥,可支持的编码如下: * *
          * 1. Hex(16进制)编码
    @@ -295,7 +295,7 @@ public static byte[] readKeyBytes(InputStream keyStream) {
         }
     
         /**
    -     * 读取pem文件中的信息,包括类型、头信息和密钥内容
    +     * 读取pem文件中的信息,包括类型、头信息和密钥内容
          *
          * @param keyStream pem流
          * @return the object
    @@ -334,7 +334,7 @@ public static byte[] md5(String data, String charset) {
         }
     
         /**
    -     * 计算32位MD5摘要值,使用UTF-8编码
    +     * 计算32位MD5摘要值,使用UTF-8编码
          *
          * @param data 被摘要数据
          * @return MD5摘要
    @@ -364,7 +364,7 @@ public static byte[] md5(File file) {
         }
     
         /**
    -     * 计算32位MD5摘要值,并转为16进制字符串
    +     * 计算32位MD5摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return MD5摘要的16进制表示
    @@ -374,7 +374,7 @@ public static String md5Hex(byte[] data) {
         }
     
         /**
    -     * 计算32位MD5摘要值,并转为16进制字符串
    +     * 计算32位MD5摘要值,并转为16进制字符串
          *
          * @param data    被摘要数据
          * @param charset 编码
    @@ -385,7 +385,7 @@ public static String md5Hex(String data, String charset) {
         }
     
         /**
    -     * 计算32位MD5摘要值,并转为16进制字符串
    +     * 计算32位MD5摘要值,并转为16进制字符串
          *
          * @param data    被摘要数据
          * @param charset 编码
    @@ -396,7 +396,7 @@ public static String md5Hex(String data, Charset charset) {
         }
     
         /**
    -     * 计算32位MD5摘要值,并转为16进制字符串
    +     * 计算32位MD5摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return MD5摘要的16进制表示
    @@ -406,7 +406,7 @@ public static String md5Hex(String data) {
         }
     
         /**
    -     * 计算32位MD5摘要值,并转为16进制字符串
    +     * 计算32位MD5摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return MD5摘要的16进制表示
    @@ -416,7 +416,7 @@ public static String md5Hex(InputStream data) {
         }
     
         /**
    -     * 计算32位MD5摘要值,并转为16进制字符串
    +     * 计算32位MD5摘要值,并转为16进制字符串
          *
          * @param file 被摘要文件
          * @return MD5摘要的16进制表示
    @@ -426,7 +426,7 @@ public static String md5Hex(File file) {
         }
     
         /**
    -     * 计算16位MD5摘要值,并转为16进制字符串
    +     * 计算16位MD5摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return MD5摘要的16进制表示
    @@ -436,7 +436,7 @@ public static String md5Hex16(byte[] data) {
         }
     
         /**
    -     * 计算16位MD5摘要值,并转为16进制字符串
    +     * 计算16位MD5摘要值,并转为16进制字符串
          *
          * @param data    被摘要数据
          * @param charset 编码
    @@ -447,7 +447,7 @@ public static String md5Hex16(String data, Charset charset) {
         }
     
         /**
    -     * 计算16位MD5摘要值,并转为16进制字符串
    +     * 计算16位MD5摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return MD5摘要的16进制表示
    @@ -457,7 +457,7 @@ public static String md5Hex16(String data) {
         }
     
         /**
    -     * 计算16位MD5摘要值,并转为16进制字符串
    +     * 计算16位MD5摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return MD5摘要的16进制表示
    @@ -467,7 +467,7 @@ public static String md5Hex16(InputStream data) {
         }
     
         /**
    -     * 计算16位MD5摘要值,并转为16进制字符串
    +     * 计算16位MD5摘要值,并转为16进制字符串
          *
          * @param file 被摘要文件
          * @return MD5摘要的16进制表示
    @@ -508,7 +508,7 @@ public static byte[] sha1(String data, String charset) {
         }
     
         /**
    -     * 计算sha1摘要值,使用UTF-8编码
    +     * 计算sha1摘要值,使用UTF-8编码
          *
          * @param data 被摘要数据
          * @return MD5摘要
    @@ -538,7 +538,7 @@ public static byte[] sha1(File file) {
         }
     
         /**
    -     * 计算SHA-1摘要值,并转为16进制字符串
    +     * 计算SHA-1摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return SHA-1摘要的16进制表示
    @@ -548,7 +548,7 @@ public static String sha1Hex(byte[] data) {
         }
     
         /**
    -     * 计算SHA-1摘要值,并转为16进制字符串
    +     * 计算SHA-1摘要值,并转为16进制字符串
          *
          * @param data    被摘要数据
          * @param charset 编码
    @@ -559,7 +559,7 @@ public static String sha1Hex(String data, String charset) {
         }
     
         /**
    -     * 计算SHA-1摘要值,并转为16进制字符串
    +     * 计算SHA-1摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return SHA-1摘要的16进制表示
    @@ -569,7 +569,7 @@ public static String sha1Hex(String data) {
         }
     
         /**
    -     * 计算SHA-1摘要值,并转为16进制字符串
    +     * 计算SHA-1摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return SHA-1摘要的16进制表示
    @@ -579,7 +579,7 @@ public static String sha1Hex(InputStream data) {
         }
     
         /**
    -     * 计算SHA-1摘要值,并转为16进制字符串
    +     * 计算SHA-1摘要值,并转为16进制字符串
          *
          * @param file 被摘要文件
          * @return SHA-1摘要的16进制表示
    @@ -612,7 +612,7 @@ public static byte[] sha256(String data, String charset) {
         }
     
         /**
    -     * 计算sha256摘要值,使用UTF-8编码
    +     * 计算sha256摘要值,使用UTF-8编码
          *
          * @param data 被摘要数据
          * @return MD5摘要
    @@ -645,7 +645,7 @@ public static byte[] sha256(File file) {
         }
     
         /**
    -     * 计算SHA-1摘要值,并转为16进制字符串
    +     * 计算SHA-1摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return SHA-256摘要的16进制表示
    @@ -656,7 +656,7 @@ public static String sha256Hex(byte[] data) {
         }
     
         /**
    -     * 计算SHA-256摘要值,并转为16进制字符串
    +     * 计算SHA-256摘要值,并转为16进制字符串
          *
          * @param data    被摘要数据
          * @param charset 编码
    @@ -668,7 +668,7 @@ public static String sha256Hex(String data, String charset) {
         }
     
         /**
    -     * 计算SHA-256摘要值,并转为16进制字符串
    +     * 计算SHA-256摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return SHA-256摘要的16进制表示
    @@ -679,7 +679,7 @@ public static String sha256Hex(String data) {
         }
     
         /**
    -     * 计算SHA-256摘要值,并转为16进制字符串
    +     * 计算SHA-256摘要值,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return SHA-256摘要的16进制表示
    @@ -690,7 +690,7 @@ public static String sha256Hex(InputStream data) {
         }
     
         /**
    -     * 计算SHA-256摘要值,并转为16进制字符串
    +     * 计算SHA-256摘要值,并转为16进制字符串
          *
          * @param file 被摘要文件
          * @return SHA-256摘要的16进制表示
    @@ -701,10 +701,10 @@ public static String sha256Hex(File file) {
         }
     
         /**
    -     * 创建HMac对象,调用digest方法可获得hmac值
    +     * 创建HMac对象,调用digest方法可获得hmac值
          *
          * @param algorithm 算法
    -     * @param key       密钥,如果为null生成随机密钥
    +     * @param key       密钥,如果为null生成随机密钥
          * @return {@link HMac}
          * @since 3.0.3
          */
    @@ -713,7 +713,7 @@ public static HMac hmac(String algorithm, byte[] key) {
         }
     
         /**
    -     * 创建HMac对象,调用digest方法可获得hmac值
    +     * 创建HMac对象,调用digest方法可获得hmac值
          *
          * @param algorithm 算法
          * @param key       密钥{@link SecretKey}
    @@ -756,9 +756,9 @@ public static boolean bcryptCheck(String password, String hashed) {
         }
     
         /**
    -     * 生成 {@link SecretKey},仅用于对称加密和摘要算法密钥生成
    +     * 生成 {@link SecretKey},仅用于对称加密和摘要算法密钥生成
          *
    -     * @param algorithm 算法,支持PBE算法
    +     * @param algorithm 算法,支持PBE算法
          * @return {@link SecretKey}
          */
         public static SecretKey generateKey(String algorithm) {
    @@ -766,9 +766,9 @@ public static SecretKey generateKey(String algorithm) {
         }
     
         /**
    -     * 生成 {@link SecretKey},仅用于对称加密和摘要算法密钥生成
    +     * 生成 {@link SecretKey},仅用于对称加密和摘要算法密钥生成
          *
    -     * @param algorithm 算法,支持PBE算法
    +     * @param algorithm 算法,支持PBE算法
          * @param keySize   密钥长度
          * @return {@link SecretKey}
          * @since 3.1.2
    @@ -780,17 +780,17 @@ public static SecretKey generateKey(String algorithm, int keySize) {
             if (keySize > 0) {
                 keyGenerator.init(keySize);
             } else if (Algorithm.AES.equals(algorithm)) {
    -            // 对于AES的密钥,除非指定,否则强制使用128位
    +            // 对于AES的密钥,除非指定,否则强制使用128位
                 keyGenerator.init(128);
             }
             return keyGenerator.generateKey();
         }
     
         /**
    -     * 生成 {@link SecretKey},仅用于对称加密和摘要算法密钥生成
    +     * 生成 {@link SecretKey},仅用于对称加密和摘要算法密钥生成
          *
          * @param algorithm 算法
    -     * @param key       密钥,如果为{@code null} 自动生成随机密钥
    +     * @param key       密钥,如果为{@code null} 自动生成随机密钥
          * @return {@link SecretKey}
          */
         public static SecretKey generateKey(String algorithm, byte[] key) {
    @@ -812,7 +812,7 @@ public static SecretKey generateKey(String algorithm, byte[] key) {
         /**
          * 生成 {@link SecretKey}
          *
    -     * @param algorithm DES算法,包括DES、DESede等
    +     * @param algorithm DES算法,包括DES、DESede等
          * @param key       密钥
          * @return {@link SecretKey}
          */
    @@ -864,7 +864,7 @@ public static SecretKey generatePBEKey(String algorithm, char[] key) {
         }
     
         /**
    -     * 生成 {@link SecretKey},仅用于对称加密和摘要算法
    +     * 生成 {@link SecretKey},仅用于对称加密和摘要算法
          *
          * @param algorithm 算法
          * @param keySpec   {@link KeySpec}
    @@ -880,10 +880,10 @@ public static SecretKey generateKey(String algorithm, KeySpec keySpec) {
         }
     
         /**
    -     * 生成RSA私钥,仅用于非对称加密
    -     * 采用PKCS#8规范,此规范定义了私钥信息语法和加密私钥语法
    +     * 生成RSA私钥,仅用于非对称加密
    +     * 采用PKCS#8规范,此规范定义了私钥信息语法和加密私钥语法
          *
    -     * @param key 密钥,必须为DER编码存储
    +     * @param key 密钥,必须为DER编码存储
          * @return RSA私钥 {@link PrivateKey}
          */
         public static PrivateKey generateRSAPrivateKey(byte[] key) {
    @@ -891,11 +891,11 @@ public static PrivateKey generateRSAPrivateKey(byte[] key) {
         }
     
         /**
    -     * 生成私钥,仅用于非对称加密
    -     * 采用PKCS#8规范,此规范定义了私钥信息语法和加密私钥语法
    +     * 生成私钥,仅用于非对称加密
    +     * 采用PKCS#8规范,此规范定义了私钥信息语法和加密私钥语法
          *
          * @param algorithm 算法
    -     * @param key       密钥,必须为DER编码存储
    +     * @param key       密钥,必须为DER编码存储
          * @return 私钥 {@link PrivateKey}
          */
         public static PrivateKey generatePrivateKey(String algorithm, byte[] key) {
    @@ -906,7 +906,7 @@ public static PrivateKey generatePrivateKey(String algorithm, byte[] key) {
         }
     
         /**
    -     * 生成私钥,仅用于非对称加密
    +     * 生成私钥,仅用于非对称加密
          *
          * @param algorithm 算法
          * @param keySpec   {@link KeySpec}
    @@ -926,7 +926,7 @@ public static PrivateKey generatePrivateKey(String algorithm, KeySpec keySpec) {
         }
     
         /**
    -     * 生成私钥,仅用于非对称加密
    +     * 生成私钥,仅用于非对称加密
          *
          * @param keyStore {@link KeyStore}
          * @param alias    别名
    @@ -942,10 +942,10 @@ public static PrivateKey generatePrivateKey(KeyStore keyStore, String alias, cha
         }
     
         /**
    -     * 生成RSA公钥,仅用于非对称加密
    +     * 生成RSA公钥,仅用于非对称加密
          * 采用X509证书规范
          *
    -     * @param key 密钥,必须为DER编码存储
    +     * @param key 密钥,必须为DER编码存储
          * @return 公钥 {@link PublicKey}
          */
         public static PublicKey generateRSAPublicKey(byte[] key) {
    @@ -953,11 +953,11 @@ public static PublicKey generateRSAPublicKey(byte[] key) {
         }
     
         /**
    -     * 生成公钥,仅用于非对称加密
    +     * 生成公钥,仅用于非对称加密
          * 采用X509证书规范
          *
          * @param algorithm 算法
    -     * @param key       密钥,必须为DER编码存储
    +     * @param key       密钥,必须为DER编码存储
          * @return 公钥 {@link PublicKey}
          */
         public static PublicKey generatePublicKey(String algorithm, byte[] key) {
    @@ -968,7 +968,7 @@ public static PublicKey generatePublicKey(String algorithm, byte[] key) {
         }
     
         /**
    -     * 生成公钥,仅用于非对称加密
    +     * 生成公钥,仅用于非对称加密
          *
          * @param algorithm 算法
          * @param keySpec   {@link KeySpec}
    @@ -988,7 +988,7 @@ public static PublicKey generatePublicKey(String algorithm, KeySpec keySpec) {
         }
     
         /**
    -     * 生成用于非对称加密的公钥和私钥,仅用于非对称加密
    +     * 生成用于非对称加密的公钥和私钥,仅用于非对称加密
          *
          * @param algorithm 非对称加密算法
          * @return {@link KeyPair}
    @@ -1052,7 +1052,7 @@ public static KeyPair generateKeyPair(String algorithm, byte[] seed, AlgorithmPa
         /**
          * 生成用于非对称加密的公钥和私钥
          * 

    - * 对于非对称加密算法,密钥长度有严格限制,具体如下: + * 对于非对称加密算法,密钥长度有严格限制,具体如下: * *

    * RSA: @@ -1083,7 +1083,7 @@ public static KeyPair generateKeyPair(String algorithm, int keySize, byte[] seed /** * 生成用于非对称加密的公钥和私钥 *

    - * 对于非对称加密算法,密钥长度有严格限制,具体如下: + * 对于非对称加密算法,密钥长度有严格限制,具体如下: * *

    * RSA: @@ -1103,7 +1103,7 @@ public static KeyPair generateKeyPair(String algorithm, int keySize, byte[] seed * * @param algorithm 非对称加密算法 * @param keySize 密钥模(modulus )长度(单位bit) - * @param random {@link SecureRandom} 对象,创建时可选传入seed + * @param random {@link SecureRandom} 对象,创建时可选传入seed * @param params {@link AlgorithmParameterSpec} * @return {@link KeyPair} */ @@ -1115,7 +1115,7 @@ public static KeyPair generateKeyPair(String algorithm, int keySize, SecureRando if (keySize > 0) { // key长度适配修正 if ("EC".equalsIgnoreCase(algorithm) && keySize > 256) { - // 对于EC(EllipticCurve)算法,密钥长度有限制,在此使用默认256 + // 对于EC(EllipticCurve)算法,密钥长度有限制,在此使用默认256 keySize = 256; } if (null != random) { @@ -1226,7 +1226,7 @@ public static KeyGenerator getKeyGenerator(String algorithm) { } /** - * 获取主体算法名,例如RSA/ECB/PKCS1Padding的主体算法是RSA + * 获取主体算法名,例如RSA/ECB/PKCS1Padding的主体算法是RSA * * @param algorithm 算法 * @return 主体算法名 @@ -1241,7 +1241,7 @@ public static String getMainAlgorithm(String algorithm) { /** * 获取用于密钥生成的算法 - * 获取XXXwithXXX算法的后半部分算法,如果为ECDSA或SM2,返回算法为EC + * 获取XXXwithXXX算法的后半部分算法,如果为ECDSA或SM2,返回算法为EC * * @param algorithm 算法 * @return 算法 @@ -1259,7 +1259,7 @@ public static String getAlgorithmAfterWith(String algorithm) { } /** - * 读取密钥库(Java Key Store,JKS) KeyStore文件 + * 读取密钥库(Java Key Store,JKS) KeyStore文件 * KeyStore文件用于数字证书的密钥对保存 * see: http://snowolf.iteye.com/blog/391931 * @@ -1373,7 +1373,7 @@ public static Certificate readX509Certificate(InputStream in) { * Certification为证书文件 * see: http://snowolf.iteye.com/blog/391931 * - * @param type 类型,例如X.509 + * @param type 类型,例如X.509 * @param in {@link InputStream} * @param password 密码 * @param alias 别名 @@ -1393,7 +1393,7 @@ public static Certificate readCertificate(String type, InputStream in, char[] pa * Certification为证书文件 * see: http://snowolf.iteye.com/blog/391931 * - * @param type 类型,例如X.509 + * @param type 类型,例如X.509 * @param in {@link InputStream} * @return {@link Certificate} */ @@ -1423,7 +1423,7 @@ public static Certificate getCertificate(KeyStore keyStore, String alias) { /** * 获取{@link CertificateFactory} * - * @param type 类型,例如X.509 + * @param type 类型,例如X.509 * @return {@link KeyPairGenerator} */ public static CertificateFactory getCertificateFactory(String type) { @@ -1440,7 +1440,7 @@ public static CertificateFactory getCertificateFactory(String type) { /** - * 生成算法,格式为XXXwithXXX + * 生成算法,格式为XXXwithXXX * * @param asymmetricAlgorithm 非对称算法 * @param algorithm 摘要算法 @@ -1452,7 +1452,7 @@ public static String generateAlgorithm(String asymmetricAlgorithm, String algori } /** - * 生成签名对象,仅用于非对称加密 + * 生成签名对象,仅用于非对称加密 * * @param asymmetricAlgorithm 非对称加密算法 * @param algorithm 摘要算法 @@ -1467,7 +1467,7 @@ public static Signature generateSignature(String asymmetricAlgorithm, String alg } /** - * AES加密,生成随机KEY。注意解密时必须使用相同 {@link AES}对象或者使用相同KEY + * AES加密,生成随机KEY 注意解密时必须使用相同 {@link AES}对象或者使用相同KEY * 例: * *

    @@ -1498,7 +1498,7 @@ public static AES aes(byte[] key) {
         }
     
         /**
    -     * DES加密,生成随机KEY。注意解密时必须使用相同 {@link DES}对象或者使用相同KEY
    +     * DES加密,生成随机KEY 注意解密时必须使用相同 {@link DES}对象或者使用相同KEY
          * 例:
          *
          * 
    @@ -1529,7 +1529,7 @@ public static DES des(byte[] key) {
         }
     
         /**
    -     * DESede加密(又名3DES、TripleDES),生成随机KEY。注意解密时必须使用相同 {@link DESede}对象或者使用相同KEY
    +     * DESede加密(又名3DES、TripleDES),生成随机KEY 注意解密时必须使用相同 {@link DESede}对象或者使用相同KEY
          * Java中默认实现为:DESede/ECB/PKCS5Padding
          * 例:
          *
    @@ -1604,10 +1604,10 @@ public static Digester sha256() {
     
     
         /**
    -     * 创建HMac对象,调用digest方法可获得hmac值
    +     * 创建HMac对象,调用digest方法可获得hmac值
          *
          * @param algorithm 算法
    -     * @param key       密钥,如果为null生成随机密钥
    +     * @param key       密钥,如果为null生成随机密钥
          * @return {@link HMac}
          * @since 3.3.0
          */
    @@ -1622,7 +1622,7 @@ public static HMac hmac(String algorithm, String key) {
          * HmacMD5加密:hmacMd5(key).digest(data)
          * HmacMD5加密并转为16进制字符串:hmacMd5(key).digestHex(data)
          *
    -     * @param key 加密密钥,如果为null生成随机密钥
    +     * @param key 加密密钥,如果为null生成随机密钥
          * @return {@link HMac}
          * @since 3.3.0
          */
    @@ -1636,7 +1636,7 @@ public static HMac hmacMd5(String key) {
          * HmacMD5加密:hmacMd5(key).digest(data)
          * HmacMD5加密并转为16进制字符串:hmacMd5(key).digestHex(data)
          *
    -     * @param key 加密密钥,如果为null生成随机密钥
    +     * @param key 加密密钥,如果为null生成随机密钥
          * @return {@link HMac}
          */
         public static HMac hmacMd5(byte[] key) {
    @@ -1644,7 +1644,7 @@ public static HMac hmacMd5(byte[] key) {
         }
     
         /**
    -     * HmacMD5加密器,生成随机KEY
    +     * HmacMD5加密器,生成随机KEY
          * 例:
          * HmacMD5加密:hmacMd5().digest(data)
          * HmacMD5加密并转为16进制字符串:hmacMd5().digestHex(data)
    @@ -1661,7 +1661,7 @@ public static HMac hmacMd5() {
          * HmacSHA1加密:hmacSha1(key).digest(data)
          * HmacSHA1加密并转为16进制字符串:hmacSha1(key).digestHex(data)
          *
    -     * @param key 加密密钥,如果为null生成随机密钥
    +     * @param key 加密密钥,如果为null生成随机密钥
          * @return {@link HMac}
          * @since 3.3.0
          */
    @@ -1675,7 +1675,7 @@ public static HMac hmacSha1(String key) {
          * HmacSHA1加密:hmacSha1(key).digest(data)
          * HmacSHA1加密并转为16进制字符串:hmacSha1(key).digestHex(data)
          *
    -     * @param key 加密密钥,如果为null生成随机密钥
    +     * @param key 加密密钥,如果为null生成随机密钥
          * @return {@link HMac}
          */
         public static HMac hmacSha1(byte[] key) {
    @@ -1683,7 +1683,7 @@ public static HMac hmacSha1(byte[] key) {
         }
     
         /**
    -     * HmacSHA1加密器,生成随机KEY
    +     * HmacSHA1加密器,生成随机KEY
          * 例:
          * HmacSHA1加密:hmacSha1().digest(data)
          * HmacSHA1加密并转为16进制字符串:hmacSha1().digestHex(data)
    @@ -1708,7 +1708,7 @@ public static RSA rsa() {
         /**
          * 创建RSA算法对象
          * 私钥和公钥同时为空时生成一对新的私钥和公钥
    -     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
    +     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
          *
          * @param privateKey 私钥Base64
          * @param publicKey  公钥Base64
    @@ -1722,7 +1722,7 @@ public static RSA rsa(String privateKey, String publicKey) {
         /**
          * 创建RSA算法对象
          * 私钥和公钥同时为空时生成一对新的私钥和公钥
    -     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
    +     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
          *
          * @param privateKey 私钥
          * @param publicKey  公钥
    @@ -1748,7 +1748,7 @@ public static Sign sign(String algorithm) {
         /**
          * 创建签名算法对象
          * 私钥和公钥同时为空时生成一对新的私钥和公钥
    -     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证
    +     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证
          *
          * @param algorithm  签名算法
          * @param privateKey 私钥Base64
    @@ -1763,7 +1763,7 @@ public static Sign sign(String algorithm, String privateKey, String publicKey) {
         /**
          * 创建Sign算法对象
          * 私钥和公钥同时为空时生成一对新的私钥和公钥
    -     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证
    +     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证
          *
          * @param algorithm  算法
          * @param privateKey 私钥
    @@ -1776,8 +1776,8 @@ public static Sign sign(String algorithm, byte[] privateKey, byte[] publicKey) {
     
         /**
          * 对参数做签名
    -     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    -     * 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
    +     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    +     * 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
          *
          * @param crypto 对称加密算法
          * @param params 参数
    @@ -1789,7 +1789,7 @@ public static String signParams(Symmetric crypto, Map params) {
     
         /**
          * 对参数做签名
    -     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    +     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
          *
          * @param crypto            对称加密算法
          * @param params            参数
    @@ -1808,8 +1808,8 @@ public static String signParams(Symmetric crypto, Map params, String separ
     
         /**
          * 对参数做md5签名
    -     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    -     * 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
    +     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    +     * 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
          *
          * @param params 参数
          * @return 签名
    @@ -1820,8 +1820,8 @@ public static String signParamsMd5(Map params) {
     
         /**
          * 对参数做Sha1签名
    -     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    -     * 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
    +     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    +     * 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
          *
          * @param params 参数
          * @return 签名
    @@ -1832,8 +1832,8 @@ public static String signParamsSha1(Map params) {
     
         /**
          * 对参数做Sha256签名
    -     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    -     * 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
    +     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    +     * 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
          *
          * @param params 参数
          * @return 签名
    @@ -1844,8 +1844,8 @@ public static String signParamsSha256(Map params) {
     
         /**
          * 对参数做签名
    -     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    -     * 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
    +     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    +     * 拼接后的字符串键值对之间无符号,键值对之间无符号,忽略null值
          *
          * @param algorithm 摘要算法
          * @param params    参数
    @@ -1857,7 +1857,7 @@ public static String signParams(String algorithm, Map params) {
     
         /**
          * 对参数做签名
    -     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
    +     * 参数签名为对Map参数按照key的顺序排序后拼接为字符串,然后根据提供的签名算法生成签名字符串
          *
          * @param algorithm         摘要算法
          * @param params            参数
    @@ -1875,7 +1875,7 @@ public static String signParams(String algorithm, Map params, String separ
         }
     
         /**
    -     * 增加加密解密的算法提供者,默认优先使用,例如:
    +     * 增加加密解密的算法提供者,默认优先使用,例如:
          *
          * 
          * addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    @@ -1954,7 +1954,7 @@ public static RC4 rc4(String key) {
         }
     
         /**
    -     * 强制关闭Bouncy Castle库的使用,全局有效
    +     * 强制关闭Bouncy Castle库的使用,全局有效
          */
         public static void disableBouncyCastle() {
             Instances.singletion(Holder.class).setUseBouncyCastle(false);
    @@ -1974,7 +1974,7 @@ public static SM2 sm2() {
         /**
          * 创建SM2算法对象
          * 私钥和公钥同时为空时生成一对新的私钥和公钥
    -     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
    +     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
          *
          * @param privateKey 私钥Hex或Base64表示
          * @param publicKey  公钥Hex或Base64表示
    @@ -1987,7 +1987,7 @@ public static SM2 sm2(String privateKey, String publicKey) {
         /**
          * 创建SM2算法对象
          * 私钥和公钥同时为空时生成一对新的私钥和公钥
    -     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
    +     * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密
          *
          * @param privateKey 私钥
          * @param publicKey  公钥
    @@ -2010,7 +2010,7 @@ public static Digester sm3() {
         }
     
         /**
    -     * SM3加密,生成16进制SM3字符串
    +     * SM3加密,生成16进制SM3字符串
          *
          * @param data 数据
          * @return SM3字符串
    @@ -2020,7 +2020,7 @@ public static String sm3(String data) {
         }
     
         /**
    -     * SM3加密,生成16进制SM3字符串
    +     * SM3加密,生成16进制SM3字符串
          *
          * @param data 数据
          * @return SM3字符串
    @@ -2030,7 +2030,7 @@ public static String sm3(InputStream data) {
         }
     
         /**
    -     * SM3加密文件,生成16进制SM3字符串
    +     * SM3加密文件,生成16进制SM3字符串
          *
          * @param dataFile 被加密文件
          * @return SM3字符串
    @@ -2040,7 +2040,7 @@ public static String sm3(File dataFile) {
         }
     
         /**
    -     * SM4加密,生成随机KEY。注意解密时必须使用相同 {@link Symmetric}对象或者使用相同KEY
    +     * SM4加密,生成随机KEY 注意解密时必须使用相同 {@link Symmetric}对象或者使用相同KEY
          * 例:
          *
          * 
    @@ -2071,14 +2071,14 @@ public static Symmetric sm4(byte[] key) {
         }
     
         /**
    -     * bc加解密使用旧标c1||c2||c3,此方法在加密后调用,将结果转化为c1||c3||c2
    +     * bc加解密使用旧标c1||c2||c3,此方法在加密后调用,将结果转化为c1||c3||c2
          *
    -     * @param c1c2c3             加密后的bytes,顺序为C1C2C3
    +     * @param c1c2c3             加密后的bytes,顺序为C1C2C3
          * @param ecDomainParameters {@link ECDomainParameters}
    -     * @return 加密后的bytes,顺序为C1C3C2
    +     * @return 加密后的bytes, 顺序为C1C3C2
          */
         public static byte[] changeC1C2C3ToC1C3C2(byte[] c1c2c3, ECDomainParameters ecDomainParameters) {
    -        // sm2p256v1的这个固定65。可看GMNamedCurves、ECCurve代码。
    +        // sm2p256v1的这个固定65 可看GMNamedCurves、ECCurve代码
             final int c1Len = (ecDomainParameters.getCurve().getFieldSize() + 7) / 8 * 2 + 1;
             final int c3Len = 32; // new SM3Digest().getDigestSize();
             byte[] result = new byte[c1c2c3.length];
    @@ -2089,14 +2089,14 @@ public static byte[] changeC1C2C3ToC1C3C2(byte[] c1c2c3, ECDomainParameters ecDo
         }
     
         /**
    -     * bc加解密使用旧标c1||c3||c2,此方法在解密前调用,将密文转化为c1||c2||c3再去解密
    +     * bc加解密使用旧标c1||c3||c2,此方法在解密前调用,将密文转化为c1||c2||c3再去解密
          *
    -     * @param c1c3c2             加密后的bytes,顺序为C1C3C2
    +     * @param c1c3c2             加密后的bytes,顺序为C1C3C2
          * @param ecDomainParameters {@link ECDomainParameters}
    -     * @return c1c2c3 加密后的bytes,顺序为C1C2C3
    +     * @return c1c2c3 加密后的bytes,顺序为C1C2C3
          */
         public static byte[] changeC1C3C2ToC1C2C3(byte[] c1c3c2, ECDomainParameters ecDomainParameters) {
    -        // sm2p256v1的这个固定65。可看GMNamedCurves、ECCurve代码。
    +        // sm2p256v1的这个固定65 可看GMNamedCurves、ECCurve代码
             final int c1Len = (ecDomainParameters.getCurve().getFieldSize() + 7) / 8 * 2 + 1;
             final int c3Len = 32; // new SM3Digest().getDigestSize();
             byte[] result = new byte[c1c3c2.length];
    @@ -2107,7 +2107,7 @@ public static byte[] changeC1C3C2ToC1C2C3(byte[] c1c3c2, ECDomainParameters ecDo
         }
     
         /**
    -     * BC的SM3withSM2签名得到的结果的rs是asn1格式的,这个方法转化成直接拼接r||s
    +     * BC的SM3withSM2签名得到的结果的rs是asn1格式的,这个方法转化成直接拼接r||s
          *
          * @param rsDer rs in asn1 format
          * @return sign result in plain byte array
    @@ -2123,7 +2123,7 @@ public static byte[] rsAsn1ToPlain(byte[] rsDer) {
         }
     
         /**
    -     * BC的SM3withSM2验签需要的rs是asn1格式的,
    +     * BC的SM3withSM2验签需要的rs是asn1格式的,
          * 这个方法将直接拼接r||s的字节数组转化成asn1格式
          *
          * @param sign in plain byte array
    @@ -2159,7 +2159,7 @@ public static MacEngine createHmacSm3Engine(byte[] key) {
          * HmacSM3算法实现
          *
          * @param key 密钥
    -     * @return {@link HMac} 对象,调用digestXXX即可
    +     * @return {@link HMac} 对象,调用digestXXX即可
          */
         public static HMac hmacSm3(byte[] key) {
             return new HMac(Algorithm.HmacSM3, key);
    diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/Holder.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/Holder.java
    index 9ee3197559..a1c9558cc0 100755
    --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/Holder.java
    +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/Holder.java
    @@ -43,7 +43,7 @@ public class Holder {
     
         /**
          * 创建Bouncy Castle 提供者
    -     * 如果用户未引入bouncycastle库,则此方法抛出{@link NoClassDefFoundError} 异常
    +     * 如果用户未引入bouncycastle库,则此方法抛出{@link NoClassDefFoundError} 异常
          *
          * @return {@link Provider}
          */
    @@ -53,7 +53,7 @@ public static Provider createBouncyCastleProvider() {
     
         /**
          * 设置是否使用Bouncy Castle库
    -     * 如果设置为false,表示强制关闭Bouncy Castle而使用JDK
    +     * 如果设置为false,表示强制关闭Bouncy Castle而使用JDK
          *
          * @param isUseBouncyCastle 是否自定义
          */
    diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/Mode.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/Mode.java
    index 312d12dbc0..5e80558c2b 100755
    --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/Mode.java
    +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/Mode.java
    @@ -26,8 +26,8 @@
     /**
      * 模式
      * 

    - * 加密算法模式,是用来描述加密算法(此处特指分组密码,不包括流密码,) - * 在加密时对明文分组的模式,它代表了不同的分组方式 + * 加密算法模式,是用来描述加密算法(此处特指分组密码,不包括流密码,) + * 在加密时对明文分组的模式,它代表了不同的分组方式 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/Padding.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/Padding.java index b8739b971b..cbc40f9165 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/Padding.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/Padding.java @@ -25,8 +25,8 @@ /** * 补码方式 - * 补码方式是在分组密码中,当明文长度不是分组长度的整数倍时, - * 需要在最后一个分组中填充一些数据使其凑满一个分组的长度。 + * 补码方式是在分组密码中,当明文长度不是分组长度的整数倍时, + * 需要在最后一个分组中填充一些数据使其凑满一个分组的长度 * * @author Kimi Liu * @version 5.2.2 @@ -38,7 +38,7 @@ public enum Padding { */ NoPadding, /** - * 0补码,既不满block长度时使用0填充 + * 0补码,既不满block长度时使用0填充 */ ZeroPadding, ISO10126Padding, diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/Provider.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/Provider.java index 12999d4ec1..ed7437fd0b 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/Provider.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/Provider.java @@ -50,8 +50,8 @@ public interface Provider { * @param key 密钥, 字符串使用','分割 * 格式: 私钥,公钥,类型 * 示例: 5c3,5c3,PrivateKey - * 1. 私钥加密,公钥解密 - * 2. 公钥加密,私钥解密 + * 1. 私钥加密,公钥解密 + * 2. 公钥加密,私钥解密 * @param content 需要解密的内容 * @return 解密结果 */ diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/Registry.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/Registry.java index f4b334242e..2d4b6285c7 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/Registry.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/Registry.java @@ -90,7 +90,7 @@ public static Provider require(String name) { * 是否包含指定名称算法 * * @param name 组件名称 - * @return true:包含, false:不包含 + * @return true:包含, false:不包含 */ public boolean contains(String name) { return ALGORITHM_CACHE.containsKey(name); diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Asymmetric.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Asymmetric.java index 44ee6fe15d..638078e8fb 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Asymmetric.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Asymmetric.java @@ -39,11 +39,11 @@ * 非对称加密算法 * *

    - * 1、签名:使用私钥加密,公钥解密。
    - * 用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得。
    + * 1、签名:使用私钥加密,公钥解密
    + * 用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得
      *
    - * 2、加密:用公钥加密,私钥解密。
    - * 用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。
    + * 2、加密:用公钥加密,私钥解密
    + * 用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得
      * 
    * * @author Kimi Liu @@ -68,7 +68,7 @@ public class Asymmetric extends Safety { /** - * 构造,创建新的私钥公钥对 + * 构造,创建新的私钥公钥对 * * @param algorithm 算法 */ @@ -78,7 +78,7 @@ public Asymmetric(String algorithm) { /** * 构造 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param algorithm 算法 * @param privateKey 私钥Hex或Base64表示 @@ -92,7 +92,7 @@ public Asymmetric(String algorithm, String privateKey, String publicKey) { * 构造 *

    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param algorithm 算法 * @param privateKey 私钥 @@ -109,7 +109,7 @@ public Asymmetric(String algorithm, byte[] privateKey, byte[] publicKey) { * 构造 *

    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param algorithm 算法 * @param privateKey 私钥 @@ -219,7 +219,7 @@ public Cipher getClipher() { } /** - * 初始化{@link Cipher},默认尝试加载BC库 + * 初始化{@link Cipher},默认尝试加载BC库 */ protected void initCipher() { this.cipher = Builder.createCipher(algorithm); @@ -233,7 +233,7 @@ protected void initCipher() { * @return 加密或解密后的数据 * @throws IllegalBlockSizeException 分段异常 * @throws BadPaddingException padding错误异常 - * @throws IOException IO异常,不会被触发 + * @throws IOException IO异常,不会被触发 */ private byte[] doFinal(byte[] data, int maxBlockSize) throws IllegalBlockSizeException, BadPaddingException, IOException { // 模长 @@ -252,11 +252,11 @@ private byte[] doFinal(byte[] data, int maxBlockSize) throws IllegalBlockSizeExc * 分段加密或解密 * * @param data 数据 - * @param maxBlockSize 最大分段的段大小,不能为小于1 + * @param maxBlockSize 最大分段的段大小,不能为小于1 * @return 加密或解密后的数据 * @throws IllegalBlockSizeException 分段异常 * @throws BadPaddingException padding错误异常 - * @throws IOException IO异常,不会被触发 + * @throws IOException IO异常,不会被触发 */ private byte[] doFinalWithBlock(byte[] data, int maxBlockSize) throws IllegalBlockSizeException, BadPaddingException, IOException { final int dataLength = data.length; diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Keys.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Keys.java index aab4a7cfc8..d24b40f6f8 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Keys.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Keys.java @@ -35,7 +35,7 @@ import java.util.concurrent.locks.ReentrantLock; /** - * 非对称基础,提供锁、私钥和公钥的持有 + * 非对称基础,提供锁、私钥和公钥的持有 * * @author Kimi Liu * @version 5.2.2 @@ -65,7 +65,7 @@ public class Keys> { * 构造 *

    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param algorithm 算法 * @param privateKey 私钥 @@ -79,7 +79,7 @@ public Keys(String algorithm, PrivateKey privateKey, PublicKey publicKey) { /** * 初始化
    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密(签名)或者解密(校验) + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密(签名)或者解密(校验) * * @param algorithm 算法 * @param privateKey 私钥 diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/RSA.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/RSA.java index 32de263fed..a5146e5d23 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/RSA.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/RSA.java @@ -43,8 +43,8 @@ * 罗纳德·李维斯特(Ron [R]ivest)、阿迪·萨莫尔(Adi [S]hamir)和伦纳德·阿德曼(Leonard [A]dleman) *

    *

    - * 由于非对称加密速度极其缓慢,一般文件不使用它来加密而是使用对称加密,
    - * 非对称加密算法可以用来对对称加密的密钥加密,这样保证密钥的安全也就保证了数据的安全 + * 由于非对称加密速度极其缓慢,一般文件不使用它来加密而是使用对称加密,
    + * 非对称加密算法可以用来对对称加密的密钥加密,这样保证密钥的安全也就保证了数据的安全 *

    * * @author Kimi Liu @@ -54,16 +54,16 @@ public class RSA extends Asymmetric { /** - * 构造,生成新的私钥公钥对 + * 构造,生成新的私钥公钥对 */ public RSA() { super(Algorithm.RSA); } /** - * 构造,生成新的私钥公钥对 + * 构造,生成新的私钥公钥对 * - * @param rsaAlgorithm 自定义RSA算法,例如RSA/ECB/PKCS1Padding + * @param rsaAlgorithm 自定义RSA算法,例如RSA/ECB/PKCS1Padding */ public RSA(String rsaAlgorithm) { super(rsaAlgorithm); @@ -72,7 +72,7 @@ public RSA(String rsaAlgorithm) { /** * 构造
    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param privateKey 私钥Hex或Base64表示 * @param publicKey 公钥Hex或Base64表示 @@ -84,9 +84,9 @@ public RSA(String privateKey, String publicKey) { /** * 构造
    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * - * @param algorithm 自定义RSA算法,例如RSA/ECB/PKCS1Padding + * @param algorithm 自定义RSA算法,例如RSA/ECB/PKCS1Padding * @param privateKey 私钥Hex或Base64表示 * @param publicKey 公钥Hex或Base64表示 */ @@ -97,7 +97,7 @@ public RSA(String algorithm, String privateKey, String publicKey) { /** * 构造
    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param privateKey 私钥 * @param publicKey 公钥 @@ -109,7 +109,7 @@ public RSA(byte[] privateKey, byte[] publicKey) { /** * 构造
    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param modulus N特征值 * @param privateExponent d特征值 @@ -123,7 +123,7 @@ public RSA(BigInteger modulus, BigInteger privateExponent, BigInteger publicExpo /** * 构造
    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param privateKey 私钥 * @param publicKey 公钥 @@ -136,9 +136,9 @@ public RSA(PrivateKey privateKey, PublicKey publicKey) { /** * 构造
    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * - * @param rsaAlgorithm 自定义RSA算法,例如RSA/ECB/PKCS1Padding + * @param rsaAlgorithm 自定义RSA算法,例如RSA/ECB/PKCS1Padding * @param privateKey 私钥 * @param publicKey 公钥 */ @@ -193,7 +193,7 @@ protected void initCipher() { } catch (InstrumentException e) { final Throwable cause = e.getCause(); if (cause instanceof NoSuchAlgorithmException) { - // 在Linux下,未引入BC库可能会导致RSA/ECB/PKCS1Padding算法无法找到,此时使用默认算法 + // 在Linux下,未引入BC库可能会导致RSA/ECB/PKCS1Padding算法无法找到,此时使用默认算法 this.algorithm = Algorithm.RSA; super.initCipher(); } diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/SM2.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/SM2.java index d331ff2056..3673f7f19e 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/SM2.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/SM2.java @@ -47,8 +47,8 @@ import java.util.Random; /** - * 国密SM2算法实现,基于BC库StringUtils - * SM2算法只支持公钥加密,私钥解密 + * 国密SM2算法实现,基于BC库StringUtils + * SM2算法只支持公钥加密,私钥解密 * * @author Kimi Liu * @version 5.2.2 @@ -71,7 +71,7 @@ public class SM2 extends Safety { private ECPrivateKeyParameters privateKeyParams; /** - * 构造,生成新的私钥公钥对 + * 构造,生成新的私钥公钥对 */ public SM2() { this((byte[]) null, (byte[]) null); @@ -80,7 +80,7 @@ public SM2() { /** * 构造StringUtils * 私钥和公钥同时为空时生成一对新的私钥和公钥StringUtils - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param privateKey 私钥Hex或Base64表示 * @param publicKey 公钥Hex或Base64表示 @@ -92,7 +92,7 @@ public SM2(String privateKey, String publicKey) { /** * 构造 StringUtils * 私钥和公钥同时为空时生成一对新的私钥和公钥StringUtils - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param privateKey 私钥 * @param publicKey 公钥 @@ -104,7 +104,7 @@ public SM2(byte[] privateKey, byte[] publicKey) { /** * 构造 StringUtils * 私钥和公钥同时为空时生成一对新的私钥和公钥StringUtils - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param privateKey 私钥 * @param publicKey 公钥 @@ -143,7 +143,7 @@ public boolean verify(byte[] data, byte[] sign) { /** * 初始化StringUtils * 私钥和公钥同时为空时生成一对新的私钥和公钥StringUtils - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密(签名)或者解密(校验) + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密(签名)或者解密(校验) * * @param privateKey 私钥 * @param publicKey 公钥 @@ -156,7 +156,7 @@ public SM2 init(PrivateKey privateKey, PublicKey publicKey) { /** * 获取密钥类型对应的加密参数对象{@link CipherParameters} * - * @param keyType Key类型枚举,包括私钥或公钥 + * @param keyType Key类型枚举,包括私钥或公钥 * @return {@link CipherParameters} */ private CipherParameters getCipherParameters(KeyType keyType) { @@ -191,7 +191,7 @@ private void ckeckKey(KeyType keyType) { } /** - * 加密,SM2非对称加密的结果由C1,C2,C3三部分组成,其中: + * 加密,SM2非对称加密的结果由C1,C2,C3三部分组成,其中: * *
          * C1 生成随机数的计算出的椭圆曲线点
    @@ -222,7 +222,7 @@ public byte[] encrypt(byte[] data, KeyType keyType) {
         /**
          * 解密
          *
    -     * @param data    SM2密文,实际包含三部分:ECC公钥、真正的密文、公钥和原文的SM3-HASH值
    +     * @param data    SM2密文,实际包含三部分:ECC公钥、真正的密文、公钥和原文的SM3-HASH值
          * @param keyType 私钥或公钥 {@link KeyType}
          * @return 加密后的bytes
          */
    @@ -246,7 +246,7 @@ public byte[] decrypt(byte[] data, KeyType keyType) {
          * 用私钥对信息生成数字签名
          *
          * @param data 加密数据
    -     * @param id   可以为null,若为null,则默认withId为字节数组:"1234567812345678".getBytes()
    +     * @param id   可以为null,若为null,则默认withId为字节数组:"1234567812345678".getBytes()
          * @return 签名
          */
         public byte[] sign(byte[] data, byte[] id) {
    @@ -272,7 +272,7 @@ public byte[] sign(byte[] data, byte[] id) {
          *
          * @param data 数据
          * @param sign 签名
    -     * @param id   可以为null,若为null,则默认withId为字节数组:"1234567812345678".getBytes()
    +     * @param id   可以为null,若为null,则默认withId为字节数组:"1234567812345678".getBytes()
          * @return 是否验证通过
          */
         public boolean verify(byte[] data, byte[] sign, byte[] id) {
    @@ -329,7 +329,7 @@ private SM2Signer getSigner() {
          * 初始化引擎
          *
          * @param forEncryption 是否为加密模式
    -     * @param param         {@link CipherParameters},此处应为{@link ParametersWithRandom}(加密时)或{@link ECKeyParameters}(解密时)
    +     * @param param         {@link CipherParameters},此处应为{@link ParametersWithRandom}(加密时)或{@link ECKeyParameters}(解密时)
          */
         public void init(boolean forEncryption, CipherParameters param) {
             this.forEncryption = forEncryption;
    @@ -361,7 +361,7 @@ public void init(boolean forEncryption, CipherParameters param) {
         }
     
         /**
    -     * 处理块,包括加密和解密
    +     * 处理块,包括加密和解密
          *
          * @param in    数据
          * @param inOff 数据开始位置
    @@ -417,7 +417,7 @@ private byte[] encrypt(byte[] in, int inOff, int inLen) {
                 kdf(kPB, c2);
             } while (notEncrypted(c2, in, inOff));
     
    -        // 杂凑值,效验数据
    +        // 杂凑值,效验数据
             byte[] c3 = new byte[digest.getDigestSize()];
     
             addFieldElement(kPB.getAffineXCoord());
    @@ -436,7 +436,7 @@ private byte[] encrypt(byte[] in, int inOff, int inLen) {
         }
     
         /**
    -     * 解密,只支持私钥解密
    +     * 解密,只支持私钥解密
          *
          * @param in    密文
          * @param inOff 位置
    @@ -585,7 +585,7 @@ private void addFieldElement(ECFieldElement v) {
     
         /**
          * SM2算法模式
    - * 在SM2算法中,C1C2C3为旧标准模式,C1C3C2为新标准模式 + * 在SM2算法中,C1C2C3为旧标准模式,C1C3C2为新标准模式 */ public enum SM2Mode { C1C2C3, C1C3C2 diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/SM2Engine.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/SM2Engine.java index 6b9524a984..f606c31ffc 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/SM2Engine.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/SM2Engine.java @@ -40,7 +40,7 @@ import java.util.Random; /** - * SM2加密解密引擎,来自Bouncy Castle库的SM2Engine类改造
    + * SM2加密解密引擎,来自Bouncy Castle库的SM2Engine类改造
    * SM2加密后的数据格式为(两种模式): * *
    @@ -76,7 +76,7 @@ public SM2Engine() {
         /**
          * 构造
          *
    -     * @param mode SM2密钥生成模式,可选C1C2C3和C1C3C2
    +     * @param mode SM2密钥生成模式,可选C1C2C3和C1C3C2
          */
         public SM2Engine(SM2Mode mode) {
             this(new SM3Digest(), mode);
    @@ -95,7 +95,7 @@ public SM2Engine(Digest digest) {
          * 构造
          *
          * @param digest 摘要算法啊
    -     * @param mode   SM2密钥生成模式,可选C1C2C3和C1C3C2
    +     * @param mode   SM2密钥生成模式,可选C1C2C3和C1C3C2
          */
         public SM2Engine(Digest digest, SM2Mode mode) {
             this.digest = digest;
    @@ -106,7 +106,7 @@ public SM2Engine(Digest digest, SM2Mode mode) {
          * 初始化引擎
          *
          * @param forEncryption 是否为加密模式
    -     * @param param         {@link CipherParameters},此处应为{@link ParametersWithRandom}(加密时)或{@link ECKeyParameters}(解密时)
    +     * @param param         {@link CipherParameters},此处应为{@link ParametersWithRandom}(加密时)或{@link ECKeyParameters}(解密时)
          */
         public void init(boolean forEncryption, CipherParameters param) {
             this.forEncryption = forEncryption;
    @@ -138,7 +138,7 @@ public void init(boolean forEncryption, CipherParameters param) {
         }
     
         /**
    -     * 处理块,包括加密和解密
    +     * 处理块,包括加密和解密
          *
          * @param in    数据
          * @param inOff 数据开始位置
    @@ -194,7 +194,7 @@ private byte[] encrypt(byte[] in, int inOff, int inLen) {
                 kdf(kPB, c2);
             } while (notEncrypted(c2, in, inOff));
     
    -        // 杂凑值,效验数据
    +        // 杂凑值,效验数据
             byte[] c3 = new byte[digest.getDigestSize()];
     
             addFieldElement(kPB.getAffineXCoord());
    @@ -213,7 +213,7 @@ private byte[] encrypt(byte[] in, int inOff, int inLen) {
         }
     
         /**
    -     * 解密,只支持私钥解密
    +     * 解密,只支持私钥解密
          *
          * @param in    密文
          * @param inOff 位置
    @@ -362,7 +362,7 @@ private void addFieldElement(ECFieldElement v) {
     
         /**
          * SM2算法模式
    - * 在SM2算法中,C1C2C3为旧标准模式,C1C3C2为新标准模式 + * 在SM2算法中,C1C2C3为旧标准模式,C1C3C2为新标准模式 */ public static enum SM2Mode { C1C2C3, C1C3C2 diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Safety.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Safety.java index aeaa85fc0c..f0e331389e 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Safety.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Safety.java @@ -46,7 +46,7 @@ public abstract class Safety> extends Keys { * 构造 *

    * 私钥和公钥同时为空时生成一对新的私钥和公钥 - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做加密或者解密 * * @param algorithm 算法 * @param privateKey 私钥 @@ -113,7 +113,7 @@ public byte[] encrypt(String data, Charset charset, KeyType keyType) { } /** - * 加密,使用UTF-8编码 + * 加密,使用UTF-8编码 * * @param data 被加密的字符串 * @param keyType 私钥或公钥 {@link KeyType} @@ -147,7 +147,7 @@ public String encryptHex(String data, Charset charset, KeyType keyType) { } /** - * 编码为Base64字符串,使用UTF-8编码 + * 编码为Base64字符串,使用UTF-8编码 * * @param data 被加密的字符串 * @param keyType 私钥或公钥 {@link KeyType} @@ -246,7 +246,7 @@ public byte[] decrypt(InputStream data, KeyType keyType) { } /** - * 从Hex或Base64字符串解密,编码为UTF-8格式 + * 从Hex或Base64字符串解密,编码为UTF-8格式 * * @param data Hex(16进制)或Base64字符串 * @param keyType 私钥或公钥 {@link KeyType} @@ -257,9 +257,9 @@ public byte[] decrypt(String data, KeyType keyType) { } /** - * 解密为字符串,密文需为Hex(16进制)或Base64字符串 + * 解密为字符串,密文需为Hex(16进制)或Base64字符串 * - * @param data 数据,Hex(16进制)或Base64字符串 + * @param data 数据,Hex(16进制)或Base64字符串 * @param keyType 密钥类型 * @param charset 加密前编码 * @return 解密后的密文 @@ -269,9 +269,9 @@ public String decryptStr(String data, KeyType keyType, Charset charset) { } /** - * 解密为字符串,密文需为Hex(16进制)或Base64字符串 + * 解密为字符串,密文需为Hex(16进制)或Base64字符串 * - * @param data 数据,Hex(16进制)或Base64字符串 + * @param data 数据,Hex(16进制)或Base64字符串 * @param keyType 密钥类型 * @return 解密后的密文 */ @@ -304,9 +304,9 @@ public byte[] decryptFromBcd(String data, KeyType keyType, Charset charset) { } /** - * 解密为字符串,密文需为BCD格式 + * 解密为字符串,密文需为BCD格式 * - * @param data 数据,BCD格式 + * @param data 数据,BCD格式 * @param keyType 密钥类型 * @param charset 加密前编码 * @return 解密后的密文 @@ -316,9 +316,9 @@ public String decryptStrFromBcd(String data, KeyType keyType, Charset charset) { } /** - * 解密为字符串,密文需为BCD格式,编码为UTF-8格式 + * 解密为字符串,密文需为BCD格式,编码为UTF-8格式 * - * @param data 数据,BCD格式 + * @param data 数据,BCD格式 * @param keyType 密钥类型 * @return 解密后的密文 */ diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Sign.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Sign.java index e759e43749..cfee203955 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Sign.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/asymmetric/Sign.java @@ -34,7 +34,7 @@ import java.util.Set; /** - * 签名包装,{@link Signature} 包装类 + * 签名包装,{@link Signature} 包装类 * * @author Kimi Liu * @version 5.2.2 @@ -43,13 +43,13 @@ public class Sign extends Keys { /** - * 签名,用于签名和验证 + * 签名,用于签名和验证 */ protected Signature signature; /** - * 构造,创建新的私钥公钥对 + * 构造,创建新的私钥公钥对 * * @param algorithm 算法 */ @@ -59,7 +59,7 @@ public Sign(String algorithm) { /** * 构造 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证 * * @param algorithm 算法 * @param privateKey 私钥Hex或Base64表示 @@ -73,7 +73,7 @@ public Sign(String algorithm, String privateKey, String publicKey) { * 构造 *

    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证 * * @param algorithm 算法 * @param privateKey 私钥 @@ -87,7 +87,7 @@ public Sign(String algorithm, PrivateKey privateKey, PublicKey publicKey) { * 构造 *

    * 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证 * * @param algorithm 算法 * @param privateKey 私钥 @@ -102,7 +102,7 @@ public Sign(String algorithm, byte[] privateKey, byte[] publicKey) { /** * 构造 私钥和公钥同时为空时生成一对新的私钥和公钥
    - * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证 + * 私钥和公钥可以单独传入一个,如此则只能使用此钥匙来做签名或验证 * * @param algorithm 算法 * @param keyPair 密钥对(包括公钥和私钥) @@ -206,7 +206,7 @@ public Sign setSignature(Signature signature) { /** * 设置{@link Certificate} 为PublicKey
    - * 如果Certificate是X509Certificate,我们需要检查是否有密钥扩展 + * 如果Certificate是X509Certificate,我们需要检查是否有密钥扩展 * * @param certificate {@link Certificate} * @return this diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/BCrypt.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/BCrypt.java index 7f6e33328d..67fae03d12 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/BCrypt.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/BCrypt.java @@ -29,9 +29,9 @@ import java.security.SecureRandom; /** - * BCrypt加密算法实现。 - * 由它加密的文件可在所有支持的操作系统和处理器上进行转移。 - * 它的口令必须是8至56个字符,并将在内部被转化为448位的密钥。 + * BCrypt加密算法实现 + * 由它加密的文件可在所有支持的操作系统和处理器上进行转移 + * 它的口令必须是8至56个字符,并将在内部被转化为448位的密钥 * * @author Kimi Liu * @version 5.2.2 @@ -249,7 +249,7 @@ private static int streamtoword(byte data[], int offp[]) { } /** - * 生成密文,使用长度为10的加盐方式 + * 生成密文,使用长度为10的加盐方式 * * @param password 需要加密的明文 * @return 密文 @@ -262,7 +262,7 @@ public static String hashpw(String password) { * 生成密文 * * @param password 需要加密的明文 - * @param salt 盐,使用{@link #gensalt()} 生成 + * @param salt 盐,使用{@link #gensalt()} 生成 * @return 密文 */ public static String hashpw(String password, String salt) { diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/Digester.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/Digester.java index f223058a9d..b790e07ee9 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/Digester.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/Digester.java @@ -50,7 +50,7 @@ public class Digester { */ protected byte[] salt; /** - * 加盐位置,既将盐值字符串放置在数据的index数,默认0 + * 加盐位置,既将盐值字符串放置在数据的index数,默认0 */ protected int saltPosition; /** @@ -72,7 +72,7 @@ public Digester(String algorithm) { * 构造 * * @param algorithm 算法 - * @param provider 算法提供者,null表示JDK默认,可以引入Bouncy Castle等来提供更多算法支持 + * @param provider 算法提供者,null表示JDK默认,可以引入Bouncy Castle等来提供更多算法支持 */ public Digester(String algorithm, Provider provider) { init(algorithm, provider); @@ -82,7 +82,7 @@ public Digester(String algorithm, Provider provider) { * 初始化 * * @param algorithm 算法 - * @param provider 算法提供者,null表示JDK默认,可以引入Bouncy Castle等来提供更多算法支持 + * @param provider 算法提供者,null表示JDK默认,可以引入Bouncy Castle等来提供更多算法支持 * @return {@link Digester} * @throws InstrumentException Cause by IOException */ @@ -111,14 +111,14 @@ public Digester setSalt(byte[] salt) { } /** - * 设置加盐的位置,只有盐值存在时有效 - * 加盐的位置指盐位于数据byte数组中的位置,例如: + * 设置加盐的位置,只有盐值存在时有效 + * 加盐的位置指盐位于数据byte数组中的位置,例如: * *

          * data: 0123456
          * 
    *

    - * 则当saltPosition = 2时,盐位于data的1和2中间,既第二个空隙,既: + * 则当saltPosition = 2时,盐位于data的1和2中间,既第二个空隙,既: * *

          * data: 01[salt]23456
    @@ -186,7 +186,7 @@ public byte[] digest(String data) {
         }
     
         /**
    -     * 生成文件摘要,并转为16进制字符串
    +     * 生成文件摘要,并转为16进制字符串
          *
          * @param data        被摘要数据
          * @param charsetName 编码
    @@ -197,7 +197,7 @@ public String digestHex(String data, String charsetName) {
         }
     
         /**
    -     * 生成文件摘要,并转为16进制字符串
    +     * 生成文件摘要,并转为16进制字符串
          *
          * @param data    被摘要数据
          * @param charset 编码
    @@ -236,7 +236,7 @@ public byte[] digest(File file) throws InstrumentException {
         }
     
         /**
    -     * 生成文件摘要,并转为16进制字符串
    +     * 生成文件摘要,并转为16进制字符串
          * 使用默认缓存大小
          *
          * @param file 被摘要文件
    @@ -247,7 +247,7 @@ public String digestHex(File file) {
         }
     
         /**
    -     * 生成摘要,考虑加盐和重复摘要次数
    +     * 生成摘要,考虑加盐和重复摘要次数
          *
          * @param data 数据bytes
          * @return 摘要bytes
    @@ -255,10 +255,10 @@ public String digestHex(File file) {
         public byte[] digest(byte[] data) {
             byte[] result;
             if (this.saltPosition <= 0) {
    -            // 加盐在开头,自动忽略空盐值
    +            // 加盐在开头,自动忽略空盐值
                 result = doDigest(this.salt, data);
             } else if (this.saltPosition >= data.length) {
    -            // 加盐在末尾,自动忽略空盐值
    +            // 加盐在末尾,自动忽略空盐值
                 result = doDigest(data, this.salt);
             } else if (ArrayUtils.isNotEmpty(this.salt)) {
                 // 加盐在中间
    @@ -275,7 +275,7 @@ public byte[] digest(byte[] data) {
         }
     
         /**
    -     * 生成摘要,并转为16进制字符串
    +     * 生成摘要,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return 摘要
    @@ -285,7 +285,7 @@ public String digestHex(byte[] data) {
         }
     
         /**
    -     * 生成摘要,使用默认缓存大小
    +     * 生成摘要,使用默认缓存大小
          *
          * @param data {@link InputStream} 数据流
          * @return 摘要bytes
    @@ -295,7 +295,7 @@ public byte[] digest(InputStream data) {
         }
     
         /**
    -     * 生成摘要,并转为16进制字符串
    +     * 生成摘要,并转为16进制字符串
          * 使用默认缓存大小
          *
          * @param data 被摘要数据
    @@ -332,7 +332,7 @@ public byte[] digest(InputStream data, int bufferLength) {
         }
     
         /**
    -     * 生成摘要,并转为16进制字符串
    +     * 生成摘要,并转为16进制字符串
          * 使用默认缓存大小
          *
          * @param data         被摘要数据
    @@ -353,9 +353,9 @@ public MessageDigest getDigest() {
         }
     
         /**
    -     * 获取散列长度,0表示不支持此方法
    +     * 获取散列长度,0表示不支持此方法
          *
    -     * @return 散列长度,0表示不支持此方法
    +     * @return 散列长度, 0表示不支持此方法
          */
         public int getDigestLength() {
             return this.digest.getDigestLength();
    @@ -433,7 +433,7 @@ private byte[] doDigest(byte[]... datas) {
         }
     
         /**
    -     * 重复计算摘要,取决于{@link #digestCount} 值
    +     * 重复计算摘要,取决于{@link #digestCount} 值
          * 每次计算摘要前都会重置{@link #digest}
          *
          * @param digestData 第一次摘要过的数据
    diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/HMac.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/HMac.java
    index 6f7a38995a..223605a0f9 100755
    --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/HMac.java
    +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/HMac.java
    @@ -40,10 +40,10 @@
     
     /**
      * HMAC摘要算法
    - * HMAC,全称为“Hash Message Authentication Code”,中文名“散列消息鉴别码”
    - * 主要是利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。
    - * 一般的,消息鉴别码用于验证传输于两个共 同享有一个密钥的单位之间的消息。
    - * HMAC 可以与任何迭代散列函数捆绑使用。MD5 和 SHA-1 就是这种散列函数。HMAC 还可以使用一个用于计算和确认消息鉴别值的密钥。
    + * HMAC,全称为“Hash Message Authentication Code”,中文名“散列消息鉴别码”
    + * 主要是利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出
    + * 一般的,消息鉴别码用于验证传输于两个共 同享有一个密钥的单位之间的消息
    + * HMAC 可以与任何迭代散列函数捆绑使用 MD5 和 SHA-1 就是这种散列函数 HMAC 还可以使用一个用于计算和确认消息鉴别值的密钥
      * 注意:此对象实例化后为非线程安全!
      *
      * @author Kimi Liu
    @@ -55,7 +55,7 @@ public class HMac {
         private MacEngine engine;
     
         /**
    -     * 构造,自动生成密钥
    +     * 构造,自动生成密钥
          *
          * @param algorithm 算法
          */
    @@ -114,7 +114,7 @@ public byte[] digest(String data) {
         }
     
         /**
    -     * 生成文件摘要,并转为16进制字符串
    +     * 生成文件摘要,并转为16进制字符串
          *
          * @param data    被摘要数据
          * @param charset 编码
    @@ -153,7 +153,7 @@ public byte[] digest(File file) throws InstrumentException {
         }
     
         /**
    -     * 生成文件摘要,并转为16进制字符串
    +     * 生成文件摘要,并转为16进制字符串
          * 使用默认缓存大小
          *
          * @param file 被摘要文件
    @@ -174,7 +174,7 @@ public byte[] digest(byte[] data) {
         }
     
         /**
    -     * 生成摘要,并转为16进制字符串
    +     * 生成摘要,并转为16进制字符串
          *
          * @param data 被摘要数据
          * @return 摘要
    @@ -184,7 +184,7 @@ public String digestHex(byte[] data) {
         }
     
         /**
    -     * 生成摘要,使用默认缓存大小
    +     * 生成摘要,使用默认缓存大小
          *
          * @param data {@link InputStream} 数据流
          * @return 摘要bytes
    @@ -194,7 +194,7 @@ public byte[] digest(InputStream data) {
         }
     
         /**
    -     * 生成摘要,并转为16进制字符串
    +     * 生成摘要,并转为16进制字符串
          * 使用默认缓存大小
          *
          * @param data 被摘要数据
    @@ -216,7 +216,7 @@ public byte[] digest(InputStream data, int bufferLength) {
         }
     
         /**
    -     * 生成摘要,并转为16进制字符串
    +     * 生成摘要,并转为16进制字符串
          * 使用默认缓存大小
          *
          * @param data         被摘要数据
    diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/MD5.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/MD5.java
    index 7113a0a3b1..d5e920ca2b 100755
    --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/MD5.java
    +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/MD5.java
    @@ -59,7 +59,7 @@ public MD5(byte[] salt) {
          * 构造
          *
          * @param salt        盐值
    -     * @param digestCount 摘要次数,当此值小于等于1,默认为1。
    +     * @param digestCount 摘要次数,当此值小于等于1,默认为1
          */
         public MD5(byte[] salt, int digestCount) {
             this(salt, 0, digestCount);
    @@ -69,8 +69,8 @@ public MD5(byte[] salt, int digestCount) {
          * 构造
          *
          * @param salt         盐值
    -     * @param saltPosition 加盐位置,既将盐值字符串放置在数据的index数,默认0
    -     * @param digestCount  摘要次数,当此值小于等于1,默认为1。
    +     * @param saltPosition 加盐位置,既将盐值字符串放置在数据的index数,默认0
    +     * @param digestCount  摘要次数,当此值小于等于1,默认为1
          */
         public MD5(byte[] salt, int saltPosition, int digestCount) {
             this();
    diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/mac/BCHMacEngine.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/mac/BCHMacEngine.java
    index cbb7843458..22c7258343 100755
    --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/mac/BCHMacEngine.java
    +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/mac/BCHMacEngine.java
    @@ -35,7 +35,7 @@
     import java.io.InputStream;
     
     /**
    - * BouncyCastle的HMAC算法实现引擎,使用{@link Mac} 实现摘要
    + * BouncyCastle的HMAC算法实现引擎,使用{@link Mac} 实现摘要
    * 当引入BouncyCastle库时自动使用其作为Provider * * @author Kimi Liu @@ -49,7 +49,7 @@ public class BCHMacEngine implements MacEngine { /** * 构造 * - * @param digest 摘要算法,为{@link Digest} 的接口实现 + * @param digest 摘要算法,为{@link Digest} 的接口实现 * @param key 密钥 */ public BCHMacEngine(Digest digest, byte[] key) { @@ -60,7 +60,7 @@ public BCHMacEngine(Digest digest, byte[] key) { * 构造 * * @param digest 摘要算法 - * @param params 参数,例如密钥可以用{@link KeyParameter} + * @param params 参数,例如密钥可以用{@link KeyParameter} */ public BCHMacEngine(Digest digest, CipherParameters params) { init(digest, params); @@ -70,7 +70,7 @@ public BCHMacEngine(Digest digest, CipherParameters params) { * 初始化 * * @param digest 摘要算法 - * @param params 参数,例如密钥可以用{@link KeyParameter} + * @param params 参数,例如密钥可以用{@link KeyParameter} * @return this */ public BCHMacEngine init(Digest digest, CipherParameters params) { diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/mac/DefaultHMacEngine.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/mac/DefaultHMacEngine.java index 38b8aee50b..311ad3eb2e 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/mac/DefaultHMacEngine.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/digest/mac/DefaultHMacEngine.java @@ -34,7 +34,7 @@ import java.io.InputStream; /** - * 默认的HMAC算法实现引擎,使用{@link Mac} 实现摘要
    + * 默认的HMAC算法实现引擎,使用{@link Mac} 实现摘要
    * 当引入BouncyCastle库时自动使用其作为Provider * * @author Kimi Liu diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/AESProvider.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/AESProvider.java index 9a804e3bb2..5653ceb767 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/AESProvider.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/AESProvider.java @@ -53,10 +53,10 @@ import org.aoju.bus.crypto.symmetric.AES; /** - * 高级加密标准,是下一代的加密算法标准,速度快,安全级别高; - * AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入, - * 对4×4的字节数组上进行操作。众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计。 - * AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数) + * 高级加密标准,是下一代的加密算法标准,速度快,安全级别高; + * AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入, + * 对4×4的字节数组上进行操作 众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计 + * AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数) * 达到十亿量级 * * @author Kimi Liu diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/DESProvider.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/DESProvider.java index f0c359bf9f..be09cc17ca 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/DESProvider.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/DESProvider.java @@ -53,7 +53,7 @@ import org.aoju.bus.crypto.symmetric.DES; /** - * 数据加密标准,速度较快,适用于加密大量数据的场合。 + * 数据加密标准,速度较快,适用于加密大量数据的场合 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/RC4Provider.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/RC4Provider.java index c5e7b2d2c0..2887f11438 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/RC4Provider.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/RC4Provider.java @@ -53,10 +53,10 @@ import org.aoju.bus.crypto.symmetric.RC4; /** - * 高级加密标准,是下一代的加密算法标准,速度快,安全级别高; - * AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入, - * 对4×4的字节数组上进行操作。众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计。 - * AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数) + * 高级加密标准,是下一代的加密算法标准,速度快,安全级别高; + * AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入, + * 对4×4的字节数组上进行操作 众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计 + * AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数) * 达到十亿量级 * * @author Kimi Liu diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/SM4Provider.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/SM4Provider.java index dc03b8f093..cc60c22c0b 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/SM4Provider.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/provider/SM4Provider.java @@ -54,10 +54,10 @@ import org.aoju.bus.crypto.symmetric.Symmetric; /** - * 高级加密标准,是下一代的加密算法标准,速度快,安全级别高; - * AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入, - * 对4×4的字节数组上进行操作。众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计。 - * AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数) + * 高级加密标准,是下一代的加密算法标准,速度快,安全级别高; + * AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入, + * 对4×4的字节数组上进行操作 众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计 + * AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数) * 达到十亿量级 * * @author Kimi Liu diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/AES.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/AES.java index f98493a25d..66e25ab4bf 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/AES.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/AES.java @@ -35,16 +35,16 @@ /** * AES加密算法实现 - * 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法 - * 对于Java中AES的默认模式是:AES/ECB/PKCS5Padding,如果使用CryptoJS,请调整为:padding: CryptoJS.pad.Pkcs7 + * 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法 + * 对于Java中AES的默认模式是:AES/ECB/PKCS5Padding,如果使用CryptoJS,请调整为:padding: CryptoJS.pad.Pkcs7 * *

    * 相关概念说明: *

    - * mode:    加密算法模式,是用来描述加密算法(此处特指分组密码,不包括流密码,)在加密时对明文分组的模式,它代表了不同的分组方式
    - * padding: 补码方式是在分组密码中,当明文长度不是分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组的长度。
    - * iv:      在对明文分组加密时,会将明文分组与前一个密文分组进行XOR运算(即异或运算),但是加密第一个明文分组时不存在“前一个密文分组”,
    - *          因此需要事先准备一个与分组长度相等的比特序列来代替,这个比特序列就是偏移量。
    + * mode:    加密算法模式,是用来描述加密算法(此处特指分组密码,不包括流密码,)在加密时对明文分组的模式,它代表了不同的分组方式
    + * padding: 补码方式是在分组密码中,当明文长度不是分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组的长度
    + * iv:      在对明文分组加密时,会将明文分组与前一个密文分组进行XOR运算(即异或运算),但是加密第一个明文分组时不存在“前一个密文分组”,
    + *          因此需要事先准备一个与分组长度相等的比特序列来代替,这个比特序列就是偏移量
      * 
    *

    * @@ -55,14 +55,14 @@ public class AES extends Symmetric { /** - * 构造,默认AES/ECB/PKCS5Padding,使用随机密钥 + * 构造,默认AES/ECB/PKCS5Padding,使用随机密钥 */ public AES() { super(Algorithm.AES); } /** - * 构造,使用默认的AES/ECB/PKCS5Padding + * 构造,使用默认的AES/ECB/PKCS5Padding * * @param key 密钥 */ @@ -71,7 +71,7 @@ public AES(byte[] key) { } /** - * 构造,使用随机密钥 + * 构造,使用随机密钥 * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 @@ -85,7 +85,7 @@ public AES(Mode mode, Padding padding) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,支持三种密钥长度:128、192、256位 + * @param key 密钥,支持三种密钥长度:128、192、256位 */ public AES(Mode mode, Padding padding, byte[] key) { this(mode, padding, key, null); @@ -96,8 +96,8 @@ public AES(Mode mode, Padding padding, byte[] key) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,支持三种密钥长度:128、192、256位 - * @param iv 偏移向量,加盐 + * @param key 密钥,支持三种密钥长度:128、192、256位 + * @param iv 偏移向量,加盐 */ public AES(Mode mode, Padding padding, byte[] key, byte[] iv) { this(mode.name(), padding.name(), key, iv); @@ -108,7 +108,7 @@ public AES(Mode mode, Padding padding, byte[] key, byte[] iv) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,支持三种密钥长度:128、192、256位 + * @param key 密钥,支持三种密钥长度:128、192、256位 */ public AES(Mode mode, Padding padding, SecretKey key) { this(mode, padding, key, (IvParameterSpec) null); @@ -119,8 +119,8 @@ public AES(Mode mode, Padding padding, SecretKey key) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,支持三种密钥长度:128、192、256位 - * @param iv 偏移向量,加盐 + * @param key 密钥,支持三种密钥长度:128、192、256位 + * @param iv 偏移向量,加盐 */ public AES(Mode mode, Padding padding, SecretKey key, byte[] iv) { this(mode, padding, key, ArrayUtils.isEmpty(iv) ? ((IvParameterSpec) null) : new IvParameterSpec(iv)); @@ -131,8 +131,8 @@ public AES(Mode mode, Padding padding, SecretKey key, byte[] iv) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,支持三种密钥长度:128、192、256位 - * @param iv 偏移向量,加盐 + * @param key 密钥,支持三种密钥长度:128、192、256位 + * @param iv 偏移向量,加盐 */ public AES(Mode mode, Padding padding, SecretKey key, IvParameterSpec iv) { this(mode.name(), padding.name(), key, iv); @@ -153,7 +153,7 @@ public AES(String mode, String padding) { * * @param mode 模式 * @param padding 补码方式 - * @param key 密钥,支持三种密钥长度:128、192、256位 + * @param key 密钥,支持三种密钥长度:128、192、256位 */ public AES(String mode, String padding, byte[] key) { this(mode, padding, key, null); @@ -164,7 +164,7 @@ public AES(String mode, String padding, byte[] key) { * * @param mode 模式 * @param padding 补码方式 - * @param key 密钥,支持三种密钥长度:128、192、256位 + * @param key 密钥,支持三种密钥长度:128、192、256位 * @param iv 加盐 */ public AES(String mode, String padding, byte[] key, byte[] iv) { @@ -178,7 +178,7 @@ public AES(String mode, String padding, byte[] key, byte[] iv) { * * @param mode 模式 * @param padding 补码方式 - * @param key 密钥,支持三种密钥长度:128、192、256位 + * @param key 密钥,支持三种密钥长度:128、192、256位 */ public AES(String mode, String padding, SecretKey key) { this(mode, padding, key, null); @@ -189,7 +189,7 @@ public AES(String mode, String padding, SecretKey key) { * * @param mode 模式 * @param padding 补码方式 - * @param key 密钥,支持三种密钥长度:128、192、256位 + * @param key 密钥,支持三种密钥长度:128、192、256位 * @param iv 加盐 */ public AES(String mode, String padding, SecretKey key, IvParameterSpec iv) { @@ -210,7 +210,7 @@ public AES setIv(IvParameterSpec iv) { /** * 设置偏移向量 * - * @param iv 偏移向量,加盐 + * @param iv 偏移向量,加盐 * @return 自身 */ public AES setIv(byte[] iv) { diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/DES.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/DES.java index ac9e34b743..e1258eecad 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/DES.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/DES.java @@ -34,7 +34,7 @@ /** * DES加密算法实现 - * DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法 + * DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法 * Java中默认实现为:DES/CBC/PKCS5Padding * * @author Kimi Liu @@ -44,14 +44,14 @@ public class DES extends Symmetric { /** - * 构造,默认DES/CBC/PKCS5Padding,使用随机密钥 + * 构造,默认DES/CBC/PKCS5Padding,使用随机密钥 */ public DES() { super(Algorithm.DES); } /** - * 构造,使用默认的DES/CBC/PKCS5Padding + * 构造,使用默认的DES/CBC/PKCS5Padding * * @param key 密钥 */ @@ -60,7 +60,7 @@ public DES(byte[] key) { } /** - * 构造,使用随机密钥 + * 构造,使用随机密钥 * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 @@ -74,7 +74,7 @@ public DES(Mode mode, Padding padding) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,长度:8的倍数 + * @param key 密钥,长度:8的倍数 */ public DES(Mode mode, Padding padding, byte[] key) { this(mode, padding, key, null); @@ -85,8 +85,8 @@ public DES(Mode mode, Padding padding, byte[] key) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,长度:8的倍数 - * @param iv 偏移向量,加盐 + * @param key 密钥,长度:8的倍数 + * @param iv 偏移向量,加盐 */ public DES(Mode mode, Padding padding, byte[] key, byte[] iv) { this(mode.name(), padding.name(), key, iv); @@ -97,7 +97,7 @@ public DES(Mode mode, Padding padding, byte[] key, byte[] iv) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,长度:8的倍数 + * @param key 密钥,长度:8的倍数 */ public DES(Mode mode, Padding padding, SecretKey key) { this(mode, padding, key, null); @@ -108,8 +108,8 @@ public DES(Mode mode, Padding padding, SecretKey key) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,长度:8的倍数 - * @param iv 偏移向量,加盐 + * @param key 密钥,长度:8的倍数 + * @param iv 偏移向量,加盐 */ public DES(Mode mode, Padding padding, SecretKey key, IvParameterSpec iv) { this(mode.name(), padding.name(), key, iv); @@ -130,7 +130,7 @@ public DES(String mode, String padding) { * * @param mode 模式 * @param padding 补码方式 - * @param key 密钥,长度:8的倍数 + * @param key 密钥,长度:8的倍数 */ public DES(String mode, String padding, byte[] key) { this(mode, padding, Builder.generateKey("DES", key), null); @@ -141,7 +141,7 @@ public DES(String mode, String padding, byte[] key) { * * @param mode 模式 * @param padding 补码方式 - * @param key 密钥,长度:8的倍数 + * @param key 密钥,长度:8的倍数 * @param iv 加盐 */ public DES(String mode, String padding, byte[] key, byte[] iv) { @@ -153,7 +153,7 @@ public DES(String mode, String padding, byte[] key, byte[] iv) { * * @param mode 模式 * @param padding 补码方式 - * @param key 密钥,长度:8的倍数 + * @param key 密钥,长度:8的倍数 */ public DES(String mode, String padding, SecretKey key) { this(mode, padding, key, null); @@ -164,7 +164,7 @@ public DES(String mode, String padding, SecretKey key) { * * @param mode 模式 * @param padding 补码方式 - * @param key 密钥,长度:8的倍数 + * @param key 密钥,长度:8的倍数 * @param iv 加盐 */ public DES(String mode, String padding, SecretKey key, IvParameterSpec iv) { @@ -185,7 +185,7 @@ public DES setIv(IvParameterSpec iv) { /** * 设置偏移向量 * - * @param iv 偏移向量,加盐 + * @param iv 偏移向量,加盐 * @return 自身 */ public DES setIv(byte[] iv) { diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/DESede.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/DESede.java index d13695574c..ba19297e60 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/DESede.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/DESede.java @@ -33,9 +33,9 @@ import javax.crypto.spec.IvParameterSpec; /** - * DESede是由DES对称加密算法改进后的一种对称加密算法,又名3DES、TripleDES + * DESede是由DES对称加密算法改进后的一种对称加密算法,又名3DES、TripleDES * 使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性 - * 如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES + * 如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES * Java中默认实现为:DESede/ECB/PKCS5Padding * * @author Kimi Liu @@ -45,14 +45,14 @@ public class DESede extends Symmetric { /** - * 构造,默认DESede/ECB/PKCS5Padding,使用随机密钥 + * 构造,默认DESede/ECB/PKCS5Padding,使用随机密钥 */ public DESede() { super(Algorithm.DESede); } /** - * 构造,使用默认的DESede/ECB/PKCS5Padding + * 构造,使用默认的DESede/ECB/PKCS5Padding * * @param key 密钥 */ @@ -61,7 +61,7 @@ public DESede(byte[] key) { } /** - * 构造,使用随机密钥 + * 构造,使用随机密钥 * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 @@ -75,7 +75,7 @@ public DESede(Mode mode, Padding padding) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,长度24位 + * @param key 密钥,长度24位 */ public DESede(Mode mode, Padding padding, byte[] key) { this(mode, padding, key, null); @@ -86,8 +86,8 @@ public DESede(Mode mode, Padding padding, byte[] key) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,长度24位 - * @param iv 偏移向量,加盐 + * @param key 密钥,长度24位 + * @param iv 偏移向量,加盐 * @since 3.3.0 */ public DESede(Mode mode, Padding padding, byte[] key, byte[] iv) { @@ -99,7 +99,7 @@ public DESede(Mode mode, Padding padding, byte[] key, byte[] iv) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,长度24位 + * @param key 密钥,长度24位 * @since 3.3.0 */ public DESede(Mode mode, Padding padding, SecretKey key) { @@ -111,8 +111,8 @@ public DESede(Mode mode, Padding padding, SecretKey key) { * * @param mode 模式{@link Mode} * @param padding {@link Padding}补码方式 - * @param key 密钥,长度24位 - * @param iv 偏移向量,加盐 + * @param key 密钥,长度24位 + * @param iv 偏移向量,加盐 * @since 3.3.0 */ public DESede(Mode mode, Padding padding, SecretKey key, IvParameterSpec iv) { @@ -134,7 +134,7 @@ public DESede(String mode, String padding) { * * @param mode 模式 * @param padding 补码方式 - * @param key 密钥,长度24位 + * @param key 密钥,长度24位 */ public DESede(String mode, String padding, byte[] key) { this(mode, padding, key, null); @@ -145,7 +145,7 @@ public DESede(String mode, String padding, byte[] key) { * * @param mode 模式 * @param padding 补码方式 - * @param key 密钥,长度24位 + * @param key 密钥,长度24位 * @param iv 加盐 */ public DESede(String mode, String padding, byte[] key, byte[] iv) { @@ -189,7 +189,7 @@ public DESede setIv(IvParameterSpec iv) { /** * 设置偏移向量 * - * @param iv 偏移向量,加盐 + * @param iv 偏移向量,加盐 * @return 自身 * @since 3.3.0 */ diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/RC4.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/RC4.java index 341220939c..fb589b80b9 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/RC4.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/RC4.java @@ -80,7 +80,7 @@ public byte[] encrypt(String message, Charset charset) throws InstrumentExceptio } /** - * 加密,使用默认编码:UTF-8 + * 加密,使用默认编码:UTF-8 * * @param message 消息 * @return 密文 @@ -145,7 +145,7 @@ public String decrypt(byte[] message, Charset charset) throws InstrumentExceptio } /** - * 解密,使用默认编码UTF-8 + * 解密,使用默认编码UTF-8 * * @param message 消息 * @return 明文 @@ -156,7 +156,7 @@ public String decrypt(byte[] message) throws InstrumentException { } /** - * 加密或解密指定值,调用此方法前需初始化密钥 + * 加密或解密指定值,调用此方法前需初始化密钥 * * @param msg 要加密或解密的消息 * @return 加密或解密后的值 diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/Symmetric.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/Symmetric.java index 04454bbda3..e6cbb0a0d0 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/Symmetric.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/Symmetric.java @@ -41,9 +41,9 @@ /** * 对称加密算法 - * 在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。 - * 收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。 - * 在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。 + * 在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去 + * 收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文 + * 在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥 * * @author Kimi Liu * @version 5.2.2 @@ -71,9 +71,9 @@ public class Symmetric { /** - * 构造,使用随机密钥 + * 构造,使用随机密钥 * - * @param algorithm 算法,可以是"algorithm/mode/padding"或者"algorithm" + * @param algorithm 算法,可以是"algorithm/mode/padding"或者"algorithm" */ public Symmetric(String algorithm) { this(algorithm, (byte[]) null); @@ -105,7 +105,7 @@ public Symmetric(String algorithm, SecretKey key) { * * @param algorithm 算法 * @param key 密钥 - * @param paramsSpec 算法参数,例如加盐等 + * @param paramsSpec 算法参数,例如加盐等 * @since 3.3.0 */ public Symmetric(String algorithm, SecretKey key, AlgorithmParameterSpec paramsSpec) { @@ -119,7 +119,7 @@ public Symmetric(String algorithm, SecretKey key, AlgorithmParameterSpec paramsS * 初始化 * * @param algorithm 算法 - * @param key 密钥,如果为null自动生成一个key + * @param key 密钥,如果为null自动生成一个key * @return {@link Symmetric} */ public Symmetric init(String algorithm, SecretKey key) { @@ -131,7 +131,7 @@ public Symmetric init(String algorithm, SecretKey key) { this.params = new PBEParameterSpec(RandomUtils.randomBytes(8), 100); } - // 检查是否为ZeroPadding,是则替换为NoPadding,并标记以便单独处理 + // 检查是否为ZeroPadding,是则替换为NoPadding,并标记以便单独处理 if (algorithm.contains(Padding.ZeroPadding.name())) { algorithm = StringUtils.replace(algorithm, Padding.ZeroPadding.name(), Padding.NoPadding.name()); this.isZeroPadding = true; @@ -142,7 +142,7 @@ public Symmetric init(String algorithm, SecretKey key) { } /** - * 设置 {@link AlgorithmParameterSpec},通常用于加盐或偏移向量 + * 设置 {@link AlgorithmParameterSpec},通常用于加盐或偏移向量 * * @param params {@link AlgorithmParameterSpec} * @return 自身 @@ -261,7 +261,7 @@ public String encryptBase64(String data, Charset charset) { } /** - * 加密,使用UTF-8编码 + * 加密,使用UTF-8编码 * * @param data 被加密的字符串 * @return 加密后的bytes @@ -271,7 +271,7 @@ public byte[] encrypt(String data) { } /** - * 加密,使用UTF-8编码 + * 加密,使用UTF-8编码 * * @param data 被加密的字符串 * @return 加密后的Hex @@ -281,7 +281,7 @@ public String encryptHex(String data) { } /** - * 加密,使用UTF-8编码 + * 加密,使用UTF-8编码 * * @param data 被加密的字符串 * @return 加密后的Base64 @@ -361,7 +361,7 @@ public String decryptStr(byte[] bytes, Charset charset) { } /** - * 解密为字符串,默认UTF-8编码 + * 解密为字符串,默认UTF-8编码 * * @param bytes 被解密的bytes * @return 解密后的String @@ -373,7 +373,7 @@ public String decryptStr(byte[] bytes) { /** * 解密Hex(16进制)或Base64表示的字符串 * - * @param data 被解密的String,必须为16进制字符串或Base64表示形式 + * @param data 被解密的String,必须为16进制字符串或Base64表示形式 * @return 解密后的bytes */ public byte[] decrypt(String data) { @@ -392,7 +392,7 @@ public String decryptStr(String data, Charset charset) { } /** - * 解密Hex表示的字符串,默认UTF-8编码 + * 解密Hex表示的字符串,默认UTF-8编码 * * @param data 被解密的String * @return 解密后的String @@ -402,7 +402,7 @@ public String decryptStr(String data) { } /** - * 解密,不会关闭流 + * 解密,不会关闭流 * * @param data 被解密的bytes * @return 解密后的bytes @@ -412,7 +412,7 @@ public byte[] decrypt(InputStream data) { } /** - * 解密,不会关闭流 + * 解密,不会关闭流 * * @param data 被解密的InputStream * @param charset 解密后的charset @@ -454,14 +454,14 @@ public Cipher getCipher() { * 数据按照blockSize的整数倍长度填充填充0 * *

    - * 在{@link Padding#ZeroPadding} 模式下,且数据长度不是blockSize的整数倍才有效,否则返回原数据 + * 在{@link Padding#ZeroPadding} 模式下,且数据长度不是blockSize的整数倍才有效,否则返回原数据 * *

    * 见:https://blog.csdn.net/OrangeJack/article/details/82913804 * * @param data 数据 * @param blockSize 块大小 - * @return 填充后的数据,如果isZeroPadding为false或长度刚好,返回原数据 + * @return 填充后的数据, 如果isZeroPadding为false或长度刚好, 返回原数据 */ private byte[] paddingDataWithZero(byte[] data, int blockSize) { if (this.isZeroPadding) { @@ -469,7 +469,7 @@ private byte[] paddingDataWithZero(byte[] data, int blockSize) { // 按照块拆分后的数据中多余的数据 final int remainLength = length % blockSize; if (remainLength > 0) { - // 新长度为blockSize的整数倍,多余部分填充0 + // 新长度为blockSize的整数倍,多余部分填充0 return ArrayUtils.resize(data, length + blockSize - remainLength); } } @@ -477,21 +477,21 @@ private byte[] paddingDataWithZero(byte[] data, int blockSize) { } /** - * 数据按照blockSize去除填充部分,用于解密 + * 数据按照blockSize去除填充部分,用于解密 * *

    - * 在{@link Padding#ZeroPadding} 模式下,且数据长度不是blockSize的整数倍才有效,否则返回原数据 + * 在{@link Padding#ZeroPadding} 模式下,且数据长度不是blockSize的整数倍才有效,否则返回原数据 * * @param data 数据 * @param blockSize 块大小 - * @return 去除填充后的数据,如果isZeroPadding为false或长度刚好,返回原数据 + * @return 去除填充后的数据, 如果isZeroPadding为false或长度刚好, 返回原数据 */ private byte[] removePadding(byte[] data, int blockSize) { if (this.isZeroPadding) { final int length = data.length; final int remainLength = length % blockSize; if (remainLength == 0) { - // 解码后的数据正好是块大小的整数倍,说明可能存在补0的情况,去掉末尾所有的0 + // 解码后的数据正好是块大小的整数倍,说明可能存在补0的情况,去掉末尾所有的0 int i = length - 1; while (i >= 0 && 0 == data[i]) { i--; diff --git a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/Vigenere.java b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/Vigenere.java index 6a94f5cc98..4e9f289a23 100755 --- a/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/Vigenere.java +++ b/bus-crypto/src/main/java/org/aoju/bus/crypto/symmetric/Vigenere.java @@ -24,8 +24,8 @@ package org.aoju.bus.crypto.symmetric; /** - * 维吉尼亚密码实现。 - * 人们在恺撒移位密码的基础上扩展出多表密码,称为维吉尼亚密码 + * 维吉尼亚密码实现 + * 人们在恺撒移位密码的基础上扩展出多表密码,称为维吉尼亚密码 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/EmojiUtils.java b/bus-extra/src/main/java/org/aoju/bus/extra/EmojiUtils.java index affa5831fa..6ebf07d29a 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/EmojiUtils.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/EmojiUtils.java @@ -53,8 +53,8 @@ public static boolean isEmoji(String str) { /** * 通过tag方式获取对应的所有Emoji表情 * - * @param tag tag标签,例如“happy” - * @return Emoji表情集合,如果找不到返回null + * @param tag tag标签,例如“happy” + * @return Emoji表情集合, 如果找不到返回null */ public static Set getByTag(String tag) { return EmojiManager.getForTag(tag); @@ -63,8 +63,8 @@ public static Set getByTag(String tag) { /** * 通过别名获取Emoji * - * @param alias 别名,例如“smile” - * @return Emoji对象,如果找不到返回null + * @param alias 别名,例如“smile” + * @return Emoji对象, 如果找不到返回null */ public static Emoji get(String alias) { return EmojiManager.getForAlias(alias); @@ -94,17 +94,17 @@ public static String toUnicode(String str) { * 例如: 😄 转换为 :smile: * *

    - * {@link FitzpatrickAction}参数被设置为{@link FitzpatrickAction#PARSE},则别名后会增加"|"并追加fitzpatrick类型 + * {@link FitzpatrickAction}参数被设置为{@link FitzpatrickAction#PARSE},则别名后会增加"|"并追加fitzpatrick类型 *

    * 例如:👦🏿 转换为 :boy|type_6: * *

    - * {@link FitzpatrickAction}参数被设置为{@link FitzpatrickAction#REMOVE},则别名后的"|"和类型将被去除 + * {@link FitzpatrickAction}参数被设置为{@link FitzpatrickAction#REMOVE},则别名后的"|"和类型将被去除 *

    * 例如:👦🏿 转换为 :boy: * *

    - * {@link FitzpatrickAction}参数被设置为{@link FitzpatrickAction#IGNORE},则别名后的类型将被忽略 + * {@link FitzpatrickAction}参数被设置为{@link FitzpatrickAction#IGNORE},则别名后的类型将被忽略 *

    * 例如:👦🏿 转换为 :boy:🏿 * @@ -116,7 +116,7 @@ public static String toAlias(String str) { } /** - * 将字符串中的Unicode Emoji字符转换为别名表现形式(两个":"包围的格式),别名后会增加"|"并追加fitzpatrick类型 + * 将字符串中的Unicode Emoji字符转换为别名表现形式(两个":"包围的格式),别名后会增加"|"并追加fitzpatrick类型 *

    * 例如:👦🏿 转换为 :boy|type_6: * diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/FtpUtils.java b/bus-extra/src/main/java/org/aoju/bus/extra/FtpUtils.java index 8f3da5372a..40ef9db159 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/FtpUtils.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/FtpUtils.java @@ -61,7 +61,7 @@ public class FtpUtils extends AbstractFtp { private FtpMode mode; /** - * 构造,匿名登录 + * 构造,匿名登录 * * @param host 域名或IP */ @@ -70,7 +70,7 @@ public FtpUtils(String host) { } /** - * 构造,匿名登录 + * 构造,匿名登录 * * @param host 域名或IP * @param port 端口 @@ -184,7 +184,7 @@ public FtpUtils init(String host, int port, String user, String password, FtpMod } /** - * 设置FTP连接模式,可选主动和被动模式 + * 设置FTP连接模式,可选主动和被动模式 * * @param mode 模式枚举 * @return this @@ -203,9 +203,9 @@ public FtpUtils setMode(FtpMode mode) { } /** - * 如果连接超时的话,重新进行连接 - * 经测试,当连接超时时,client.isConnected()仍然返回ture,无法判断是否连接超时 - * 因此,通过发送pwd命令的方式,检查连接是否超时 + * 如果连接超时的话,重新进行连接 + * 经测试,当连接超时时,client.isConnected()仍然返回ture,无法判断是否连接超时 + * 因此,通过发送pwd命令的方式,检查连接是否超时 * * @return this */ @@ -267,7 +267,7 @@ public List ls(String path) { } /** - * 遍历某个目录下所有文件和目录,不会递归遍历 + * 遍历某个目录下所有文件和目录,不会递归遍历 * * @param path 目录 * @return 文件或目录列表 @@ -372,7 +372,7 @@ public boolean delDir(String dirPath) { } /** - * 上传文件到指定目录,可选: + * 上传文件到指定目录,可选: * *

          * 1. path为null或""上传到当前路径
    @@ -380,7 +380,7 @@ public boolean delDir(String dirPath) {
          * 3. path为绝对路径则上传到此路径
          * 
    * - * @param path 服务端路径,可以为{@code null} 或者相对路径或绝对路径 + * @param path 服务端路径,可以为{@code null} 或者相对路径或绝对路径 * @param file 文件 * @return 是否上传成功 */ @@ -391,7 +391,7 @@ public boolean upload(String path, File file) { } /** - * 上传文件到指定目录,可选: + * 上传文件到指定目录,可选: * *
          * 1. path为null或""上传到当前路径
    @@ -400,7 +400,7 @@ public boolean upload(String path, File file) {
          * 
    * * @param file 文件 - * @param path 服务端路径,可以为{@code null} 或者相对路径或绝对路径 + * @param path 服务端路径,可以为{@code null} 或者相对路径或绝对路径 * @param fileName 自定义在服务端保存的文件名 * @return 是否上传成功 */ @@ -413,7 +413,7 @@ public boolean upload(String path, String fileName, File file) { } /** - * 上传文件到指定目录,可选: + * 上传文件到指定目录,可选: * *
          * 1. path为null或""上传到当前路径
    @@ -421,7 +421,7 @@ public boolean upload(String path, String fileName, File file) {
          * 3. path为绝对路径则上传到此路径
          * 
    * - * @param path 服务端路径,可以为{@code null} 或者相对路径或绝对路径 + * @param path 服务端路径,可以为{@code null} 或者相对路径或绝对路径 * @param fileName 文件名 * @param fileStream 文件流 * @return 是否上传成功 diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/MailUtils.java b/bus-extra/src/main/java/org/aoju/bus/extra/MailUtils.java index 5423f4605e..a4f92b4414 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/MailUtils.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/MailUtils.java @@ -34,7 +34,7 @@ import java.util.List; /** - * 邮件工具类,基于javax.mail封装 + * 邮件工具类,基于javax.mail封装 * * @author Kimi Liu * @version 5.2.2 @@ -43,8 +43,8 @@ public class MailUtils { /** - * 使用配置文件中设置的账户发送文本邮件,发送给单个或多个收件人 - * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔 + * 使用配置文件中设置的账户发送文本邮件,发送给单个或多个收件人 + * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔 * * @param to 收件人 * @param subject 标题 @@ -57,8 +57,8 @@ public static void sendText(String to, String subject, String content, File... f } /** - * 使用配置文件中设置的账户发送HTML邮件,发送给单个或多个收件人 - * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔 + * 使用配置文件中设置的账户发送HTML邮件,发送给单个或多个收件人 + * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔 * * @param to 收件人 * @param subject 标题 @@ -71,8 +71,8 @@ public static void sendHtml(String to, String subject, String content, File... f } /** - * 使用配置文件中设置的账户发送邮件,发送单个或多个收件人 - * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔 + * 使用配置文件中设置的账户发送邮件,发送单个或多个收件人 + * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔 * * @param to 收件人 * @param subject 标题 @@ -85,12 +85,12 @@ public static void send(String to, String subject, String content, boolean isHtm } /** - * 使用配置文件中设置的账户发送邮件,发送单个或多个收件人 - * 多个收件人、抄送人、密送人可以使用逗号“,”分隔,也可以通过分号“;”分隔 + * 使用配置文件中设置的账户发送邮件,发送单个或多个收件人 + * 多个收件人、抄送人、密送人可以使用逗号“,”分隔,也可以通过分号“;”分隔 * - * @param to 收件人,可以使用逗号“,”分隔,也可以通过分号“;”分隔 - * @param cc 抄送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔 - * @param bcc 密送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔 + * @param to 收件人,可以使用逗号“,”分隔,也可以通过分号“;”分隔 + * @param cc 抄送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔 + * @param bcc 密送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔 * @param subject 标题 * @param content 正文 * @param isHtml 是否为HTML @@ -101,7 +101,7 @@ public static void send(String to, String cc, String bcc, String subject, String } /** - * 使用配置文件中设置的账户发送文本邮件,发送给多人 + * 使用配置文件中设置的账户发送文本邮件,发送给多人 * * @param tos 收件人列表 * @param subject 标题 @@ -113,7 +113,7 @@ public static void sendText(Collection tos, String subject, String conte } /** - * 使用配置文件中设置的账户发送HTML邮件,发送给多人 + * 使用配置文件中设置的账户发送HTML邮件,发送给多人 * * @param tos 收件人列表 * @param subject 标题 @@ -126,7 +126,7 @@ public static void sendHtml(Collection tos, String subject, String conte } /** - * 使用配置文件中设置的账户发送邮件,发送给多人 + * 使用配置文件中设置的账户发送邮件,发送给多人 * * @param tos 收件人列表 * @param subject 标题 @@ -139,11 +139,11 @@ public static void send(Collection tos, String subject, String content, } /** - * 使用配置文件中设置的账户发送邮件,发送给多人 + * 使用配置文件中设置的账户发送邮件,发送给多人 * * @param tos 收件人列表 - * @param ccs 抄送人列表,可以为null或空 - * @param bccs 密送人列表,可以为null或空 + * @param ccs 抄送人列表,可以为null或空 + * @param bccs 密送人列表,可以为null或空 * @param subject 标题 * @param content 正文 * @param isHtml 是否为HTML @@ -157,7 +157,7 @@ public static void send(Collection tos, Collection ccs, Collecti * 发送邮件给多人 * * @param mailAccount 邮件认证对象 - * @param to 收件人,多个收件人逗号或者分号隔开 + * @param to 收件人,多个收件人逗号或者分号隔开 * @param subject 标题 * @param content 正文 * @param isHtml 是否为HTML格式 @@ -193,8 +193,8 @@ public static void send(MailAccount mailAccount, Collection tos, String * * @param mailAccount 邮件认证对象 * @param tos 收件人列表 - * @param ccs 抄送人列表,可以为null或空 - * @param bccs 密送人列表,可以为null或空 + * @param ccs 抄送人列表,可以为null或空 + * @param bccs 密送人列表,可以为null或空 * @param subject 标题 * @param content 正文 * @param isHtml 是否为HTML格式 @@ -222,9 +222,9 @@ public static void send(MailAccount mailAccount, Collection tos, Collect } /** - * 将多个联系人转为列表,分隔符为逗号或者分号 + * 将多个联系人转为列表,分隔符为逗号或者分号 * - * @param addresses 多个联系人,如果为空返回null + * @param addresses 多个联系人,如果为空返回null * @return 联系人列表 */ private static List splitAddress(String addresses) { diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/QrCodeUtils.java b/bus-extra/src/main/java/org/aoju/bus/extra/QrCodeUtils.java index e12630931b..35668757b6 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/QrCodeUtils.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/QrCodeUtils.java @@ -51,7 +51,7 @@ public class QrCodeUtils { /** - * 生成PNG格式的二维码图片,以byte[]形式表示 + * 生成PNG格式的二维码图片,以byte[]形式表示 * * @param content 内容 * @param width 宽度 @@ -65,10 +65,10 @@ public static byte[] generatePng(String content, int width, int height) { } /** - * 生成PNG格式的二维码图片,以byte[]形式表示 + * 生成PNG格式的二维码图片,以byte[]形式表示 * * @param content 内容 - * @param config 二维码配置,包括长、宽、边距、颜色等 + * @param config 二维码配置,包括长、宽、边距、颜色等 * @return 图片的byte[] */ public static byte[] generatePng(String content, QrConfig config) { @@ -78,12 +78,12 @@ public static byte[] generatePng(String content, QrConfig config) { } /** - * 生成二维码到文件,二维码图片格式取决于文件的扩展名 + * 生成二维码到文件,二维码图片格式取决于文件的扩展名 * * @param content 文本内容 * @param width 宽度 * @param height 高度 - * @param targetFile 目标文件,扩展名决定输出格式 + * @param targetFile 目标文件,扩展名决定输出格式 * @return 目标文件 */ public static File generate(String content, int width, int height, File targetFile) { @@ -93,11 +93,11 @@ public static File generate(String content, int width, int height, File targetFi } /** - * 生成二维码到文件,二维码图片格式取决于文件的扩展名 + * 生成二维码到文件,二维码图片格式取决于文件的扩展名 * * @param content 文本内容 - * @param config 二维码配置,包括长、宽、边距、颜色等 - * @param targetFile 目标文件,扩展名决定输出格式 + * @param config 二维码配置,包括长、宽、边距、颜色等 + * @param targetFile 目标文件,扩展名决定输出格式 * @return 目标文件 */ public static File generate(String content, QrConfig config, File targetFile) { @@ -112,7 +112,7 @@ public static File generate(String content, QrConfig config, File targetFile) { * @param content 文本内容 * @param width 宽度 * @param height 高度 - * @param imageType 图片类型(图片扩展名),见{@link ImageUtils} + * @param imageType 图片类型(图片扩展名),见{@link ImageUtils} * @param out 目标流 */ public static void generate(String content, int width, int height, String imageType, OutputStream out) { @@ -124,8 +124,8 @@ public static void generate(String content, int width, int height, String imageT * 生成二维码到输出流 * * @param content 文本内容 - * @param config 二维码配置,包括长、宽、边距、颜色等 - * @param imageType 图片类型(图片扩展名),见{@link ImageUtils} + * @param config 二维码配置,包括长、宽、边距、颜色等 + * @param imageType 图片类型(图片扩展名),见{@link ImageUtils} * @param out 目标流 */ public static void generate(String content, QrConfig config, String imageType, OutputStream out) { @@ -149,7 +149,7 @@ public static BufferedImage generate(String content, int width, int height) { * 生成二维码或条形码图片 * * @param content 文本内容 - * @param format 格式,可选二维码或者条形码 + * @param format 格式,可选二维码或者条形码 * @param width 宽度 * @param height 高度 * @return 二维码图片(黑白) @@ -162,7 +162,7 @@ public static BufferedImage generate(String content, BarcodeFormat format, int w * 生成二维码图片 * * @param content 文本内容 - * @param config 二维码配置,包括长、宽、边距、颜色等 + * @param config 二维码配置,包括长、宽、边距、颜色等 * @return 二维码图片(黑白) */ public static BufferedImage generate(String content, QrConfig config) { @@ -174,8 +174,8 @@ public static BufferedImage generate(String content, QrConfig config) { * 只有二维码时QrConfig中的图片才有效 * * @param content 文本内容 - * @param format 格式,可选二维码、条形码等 - * @param config 二维码配置,包括长、宽、边距、颜色等 + * @param format 格式,可选二维码、条形码等 + * @param config 二维码配置,包括长、宽、边距、颜色等 * @return 二维码图片(黑白) */ public static BufferedImage generate(String content, BarcodeFormat format, QrConfig config) { @@ -222,7 +222,7 @@ public static BitMatrix encode(String content, int width, int height) { * 将文本内容编码为二维码 * * @param content 文本内容 - * @param config 二维码配置,包括长、宽、边距、颜色等 + * @param config 二维码配置,包括长、宽、边距、颜色等 * @return {@link BitMatrix} */ public static BitMatrix encode(String content, QrConfig config) { @@ -247,7 +247,7 @@ public static BitMatrix encode(String content, BarcodeFormat format, int width, * * @param content 文本内容 * @param format 格式枚举 - * @param config 二维码配置,包括长、宽、边距、颜色等 + * @param config 二维码配置,包括长、宽、边距、颜色等 * @return {@link BitMatrix} */ public static BitMatrix encode(String content, BarcodeFormat format, QrConfig config) { @@ -301,7 +301,7 @@ public static String decode(java.awt.Image image) { * * @param image {@link java.awt.Image} 二维码图片 * @param isTryHarder 是否优化精度 - * @param isPureBarcode 是否使用复杂模式,扫描带logo的二维码设为true + * @param isPureBarcode 是否使用复杂模式,扫描带logo的二维码设为true * @return 解码后的文本 */ public static String decode(java.awt.Image image, boolean isTryHarder, boolean isPureBarcode) { @@ -315,7 +315,7 @@ public static String decode(java.awt.Image image, boolean isTryHarder, boolean i hints.put(DecodeHintType.CHARACTER_SET, Charset.UTF_8); // 优化精度 hints.put(DecodeHintType.TRY_HARDER, Boolean.valueOf(isTryHarder)); - // 复杂模式,开启PURE_BARCODE模式 + // 复杂模式,开启PURE_BARCODE模式 hints.put(DecodeHintType.PURE_BARCODE, Boolean.valueOf(isPureBarcode)); Result result; try { diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/SSHUtils.java b/bus-extra/src/main/java/org/aoju/bus/extra/SSHUtils.java index 39f0a6cb78..fb981a2fc6 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/SSHUtils.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/SSHUtils.java @@ -41,7 +41,7 @@ /** * SSH2工具类 - * 它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等。 + * 它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等 * * @author Kimi Liu * @version 5.2.2 @@ -60,7 +60,7 @@ public class SSHUtils { private static final AtomicInteger port = new AtomicInteger(10000); /** - * 生成一个本地端口,用于远程端口映射 + * 生成一个本地端口,用于远程端口映射 * * @return 未被使用的本地端口 */ @@ -73,7 +73,7 @@ public static int generateLocalPort() { } /** - * 获得一个SSH会话,重用已经使用的会话 + * 获得一个SSH会话,重用已经使用的会话 * * @param sshHost 主机 * @param sshPort 端口 @@ -122,7 +122,7 @@ public static Session createSession(String sshHost, int sshPort, String sshUser, try { session = new JSch().getSession(sshUser, sshHost, sshPort); session.setPassword(sshPass); - // 设置第一次登陆的时候提示,可选值:(ask | yes | no) + // 设置第一次登陆的时候提示,可选值:(ask | yes | no) session.setConfig("StrictHostKeyChecking", "no"); } catch (JSchException e) { throw new InstrumentException(e); @@ -131,7 +131,7 @@ public static Session createSession(String sshHost, int sshPort, String sshUser, } /** - * 绑定端口到本地。 一个会话可绑定多个端口 + * 绑定端口到本地 一个会话可绑定多个端口 * * @param session 需要绑定端口的SSH会话 * @param remoteHost 远程主机 @@ -169,7 +169,7 @@ public static boolean unBindPort(Session session, int localPort) { } /** - * 打开SSH会话,并绑定远程端口到本地的一个随机端口 + * 打开SSH会话,并绑定远程端口到本地的一个随机端口 * * @param sshConn SSH连接信息对象 * @param remoteHost 远程主机 @@ -234,7 +234,7 @@ public static ChannelShell openShell(Session session) { * 打开Channel连接 * * @param session Session会话 - * @param channelType 通道类型,可以是shell或sftp等,见{@link ChannelType} + * @param channelType 通道类型,可以是shell或sftp等,见{@link ChannelType} * @return {@link Channel} */ public static Channel openChannel(Session session, ChannelType channelType) { @@ -251,7 +251,7 @@ public static Channel openChannel(Session session, ChannelType channelType) { * 创建Channel连接 * * @param session Session会话 - * @param channelType 通道类型,可以是shell或sftp等,见{@link ChannelType} + * @param channelType 通道类型,可以是shell或sftp等,见{@link ChannelType} * @return {@link Channel} */ public static Channel createChannel(Session session, ChannelType channelType) { @@ -337,7 +337,7 @@ public static void close(Channel channel) { /** * 关闭SSH连接会话 * - * @param key 主机,格式为user@host:port + * @param key 主机,格式为user@host:port */ public static void close(String key) { JschSessionPool.INSTANCE.close(key); diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/ServletUtils.java b/bus-extra/src/main/java/org/aoju/bus/extra/ServletUtils.java index b10594fa92..b0091003e0 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/ServletUtils.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/ServletUtils.java @@ -76,7 +76,7 @@ public static Map getParamMap(ServletRequest request) { /** * 获取请求体 - * 调用该方法后,getParam方法将失效 + * 调用该方法后,getParam方法将失效 * * @param request {@link ServletRequest} * @return 获得请求体 @@ -91,7 +91,7 @@ public static String getBody(ServletRequest request) { /** * 获取请求体byte[] - * 调用该方法后,getParam方法将失效 + * 调用该方法后,getParam方法将失效 * * @param request {@link ServletRequest} * @return 获得请求体byte[] @@ -124,7 +124,7 @@ public Object value(String key, Type valueType) { // 使用类名前缀尝试查找值 value = request.getParameter(beanName + Symbol.DOT + key); if (StringUtils.isEmpty(value)) { - // 此处取得的值为空时跳过,包括null和"" + // 此处取得的值为空时跳过,包括null和"" value = null; } } @@ -133,7 +133,7 @@ public Object value(String key, Type valueType) { @Override public boolean containsKey(String key) { - // 对于Servlet来说,返回值null意味着无此参数 + // 对于Servlet来说,返回值null意味着无此参数 return (null != request.getParameter(key)) || (null != request.getParameter(beanName + Symbol.DOT + key)); } }, copyOptions); @@ -177,11 +177,11 @@ public static T toBean(ServletRequest request, Class beanClass, boolean i * *

    * otherHeaderNames参数用于自定义检测的Header - * 需要注意的是,使用此方法获取的客户IP地址必须在Http服务器(例如Nginx)中配置头信息,否则容易造成IP伪造。 + * 需要注意的是,使用此方法获取的客户IP地址必须在Http服务器(例如Nginx)中配置头信息,否则容易造成IP伪造 *

    * * @param request 请求对象{@link HttpServletRequest} - * @param otherHeaderNames 其他自定义头文件,通常在Http服务器(例如Nginx)中配置 + * @param otherHeaderNames 其他自定义头文件,通常在Http服务器(例如Nginx)中配置 * @return IP地址 */ public static String getClientIP(HttpServletRequest request, String... otherHeaderNames) { @@ -198,11 +198,11 @@ public static String getClientIP(HttpServletRequest request, String... otherHead * *

    * headerNames参数用于自定义检测的Header - * 需要注意的是,使用此方法获取的客户IP地址必须在Http服务器(例如Nginx)中配置头信息,否则容易造成IP伪造。 + * 需要注意的是,使用此方法获取的客户IP地址必须在Http服务器(例如Nginx)中配置头信息,否则容易造成IP伪造 *

    * * @param request 请求对象{@link HttpServletRequest} - * @param headerNames 自定义头,通常在Http服务器(例如Nginx)中配置 + * @param headerNames 自定义头,通常在Http服务器(例如Nginx)中配置 * @return IP地址 */ public static String getClientIPByHeader(HttpServletRequest request, String... headerNames) { @@ -296,10 +296,10 @@ public static boolean isPostMethod(HttpServletRequest request) { } /** - * 是否为Multipart类型表单,此类型表单用于文件上传 + * 是否为Multipart类型表单,此类型表单用于文件上传 * * @param request 请求对象{@link HttpServletRequest} - * @return 是否为Multipart类型表单,此类型表单用于文件上传 + * @return 是否为Multipart类型表单, 此类型表单用于文件上传 */ public static boolean isMultipart(HttpServletRequest request) { if (false == isPostMethod(request)) { @@ -342,7 +342,7 @@ public final static Map readCookieMap(HttpServletRequest httpSer return null; } for (Cookie cookie : cookies) { - cookieMap.put(cookie.getName().toLowerCase(), cookie); + cookieMap.put(cookie.getName(), cookie); } return cookieMap; } @@ -518,7 +518,7 @@ public static void write(HttpServletResponse response, InputStream in, int buffe * * @param response 响应对象{@link HttpServletResponse} * @param name 名 - * @param value 值,可以是String,Date, int + * @param value 值,可以是String,Date, int */ public static void setHeader(HttpServletResponse response, String name, Object value) { if (value instanceof String) { @@ -553,7 +553,7 @@ private static String getMultistageReverseProxyIp(String ip) { } /** - * 检测给定字符串是否为未知,多用于检测HTTP请求相关 + * 检测给定字符串是否为未知,多用于检测HTTP请求相关 * * @param checkString 被检测的字符串 * @return 是否未知 diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/ftp/AbstractFtp.java b/bus-extra/src/main/java/org/aoju/bus/extra/ftp/AbstractFtp.java index 1a94917e85..14eb5f0eab 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/ftp/AbstractFtp.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/ftp/AbstractFtp.java @@ -34,7 +34,7 @@ import java.util.List; /** - * 抽象FTP类,用于定义通用的FTP方法 + * 抽象FTP类,用于定义通用的FTP方法 * * @author Kimi Liu * @version 5.2.2 @@ -53,7 +53,7 @@ public abstract class AbstractFtp implements Closeable { protected Charset charset; /** - * 是否包含指定字符串,忽略大小写 + * 是否包含指定字符串,忽略大小写 * * @param names 文件或目录名列表 * @param nameToFind 要查找的文件或目录名 @@ -75,7 +75,7 @@ private static boolean containsIgnoreCase(List names, String nameToFind) } /** - * 如果连接超时的话,重新进行连接 + * 如果连接超时的话,重新进行连接 * * @return this */ @@ -127,7 +127,7 @@ public boolean exist(String path) { } /** - * 遍历某个目录下所有文件和目录,不会递归遍历 + * 遍历某个目录下所有文件和目录,不会递归遍历 * * @param path 需要遍历的目录 * @return 文件和目录列表 @@ -151,16 +151,16 @@ public boolean exist(String path) { public abstract boolean delDir(String dirPath); /** - * 创建指定文件夹及其父目录,从根目录开始创建,创建完成后回到默认的工作目录 + * 创建指定文件夹及其父目录,从根目录开始创建,创建完成后回到默认的工作目录 * - * @param dir 文件夹路径,绝对路径 + * @param dir 文件夹路径,绝对路径 */ public void mkDirs(String dir) { final String[] dirs = StringUtils.trim(dir).split("[\\\\/]+"); final String now = pwd(); if (dirs.length > 0 && StringUtils.isEmpty(dirs[0])) { - //首位为空,表示以/开头 + //首位为空,表示以/开头 this.cd(Symbol.SLASH); } for (int i = 0; i < dirs.length; i++) { @@ -177,7 +177,7 @@ public void mkDirs(String dir) { } /** - * 将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同。覆盖模式 + * 将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同 覆盖模式 * * @param srcFilePath 本地文件路径 * @param destFile 目标文件 diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/mail/GlobalMailAccount.java b/bus-extra/src/main/java/org/aoju/bus/extra/mail/GlobalMailAccount.java index 054bcb3e06..1595aaea94 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/mail/GlobalMailAccount.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/mail/GlobalMailAccount.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.lang.exception.InstrumentException; /** - * 全局邮件帐户,依赖于邮件配置文件{@link MailAccount#MAIL_SETTING_PATH}或{@link MailAccount#MAIL_SETTING_PATH2} + * 全局邮件帐户,依赖于邮件配置文件{@link MailAccount#MAIL_SETTING_PATH}或{@link MailAccount#MAIL_SETTING_PATH2} * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/mail/Mail.java b/bus-extra/src/main/java/org/aoju/bus/extra/mail/Mail.java index c9dd99311f..2a6d13228d 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/mail/Mail.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/mail/Mail.java @@ -80,12 +80,12 @@ public class Mail { */ private DataSource[] attachments; /** - * 是否使用全局会话,默认为true + * 是否使用全局会话,默认为true */ private boolean useGlobalSession = true; /** - * 构造,使用全局邮件帐户 + * 构造,使用全局邮件帐户 */ public Mail() { this(GlobalMailAccount.INSTANCE.getAccount()); @@ -94,7 +94,7 @@ public Mail() { /** * 构造 * - * @param mailAccount 邮件帐户,如果为null使用默认配置文件的全局邮件配置 + * @param mailAccount 邮件帐户,如果为null使用默认配置文件的全局邮件配置 */ public Mail(MailAccount mailAccount) { mailAccount = (null != mailAccount) ? mailAccount : GlobalMailAccount.INSTANCE.getAccount(); @@ -112,7 +112,7 @@ public static Mail create(MailAccount mailAccount) { } /** - * 创建邮件客户端,使用全局邮件帐户 + * 创建邮件客户端,使用全局邮件帐户 * * @return {@link Mail} */ @@ -212,7 +212,7 @@ public Mail setFiles(File... files) { } /** - * 设置附件,附件使用{@link DataSource} 形式表示,可以使用{@link FileDataSource}包装文件表示文件附件 + * 设置附件,附件使用{@link DataSource} 形式表示,可以使用{@link FileDataSource}包装文件表示文件附件 * * @param attachments 附件列表 * @return this @@ -235,9 +235,9 @@ public Mail setCharset(Charset charset) { } /** - * 设置是否使用全局会话,默认为true + * 设置是否使用全局会话,默认为true * - * @param isUseGlobalSession 是否使用全局会话,默认为true + * @param isUseGlobalSession 是否使用全局会话,默认为true * @return this */ public Mail setUseGlobalSession(boolean isUseGlobalSession) { @@ -282,7 +282,7 @@ private MimeMessage buildMsg() throws MessagingException { // 发件人 final String from = this.mailAccount.getFrom(); if (StringUtils.isEmpty(from)) { - // 用户未提供发送方,则从Session中自动获取 + // 用户未提供发送方,则从Session中自动获取 msg.setFrom(); } else { msg.setFrom(InternalMail.parseFirstAddress(from, charset)); @@ -337,7 +337,7 @@ private Multipart buildContent(Charset charset) throws MessagingException { /** * 获取默认邮件会话 - * 如果为全局单例的会话,则全局只允许一个邮件帐号,否则每次发送邮件会新建一个新的会话 + * 如果为全局单例的会话,则全局只允许一个邮件帐号,否则每次发送邮件会新建一个新的会话 * * @param isSingleton 是否使用单例Session * @return 邮件会话 {@link Session} diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/mail/MailAccount.java b/bus-extra/src/main/java/org/aoju/bus/extra/mail/MailAccount.java index 89ba44a6f1..23dd44f015 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/mail/MailAccount.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/mail/MailAccount.java @@ -75,12 +75,12 @@ public class MailAccount implements Serializable { */ private String pass; /** - * 发送方,遵循RFC-822标准 + * 发送方,遵循RFC-822标准 */ private String from; /** - * 是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启 + * 是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启 */ private boolean debug; /** @@ -88,12 +88,12 @@ public class MailAccount implements Serializable { */ private Charset charset = org.aoju.bus.core.consts.Charset.UTF_8; /** - * 对于超长参数是否切分为多份,默认为false(国内邮箱附件不支持切分的附件名) + * 对于超长参数是否切分为多份,默认为false(国内邮箱附件不支持切分的附件名) */ private boolean splitlongparameters; /** - * 使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口。 + * 使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展 它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口 */ private boolean startttlsEnable = false; /** @@ -109,16 +109,16 @@ public class MailAccount implements Serializable { */ private boolean socketFactoryFallback; /** - * 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口 + * 指定的端口连接到在使用指定的套接字工厂 如果没有设置,将使用默认端口 */ private int socketFactoryPort = 465; /** - * SMTP超时时长,单位毫秒,缺省值不超时 + * SMTP超时时长,单位毫秒,缺省值不超时 */ private long timeout; /** - * Socket连接超时值,单位毫秒,缺省值不超时 + * Socket连接超时值,单位毫秒,缺省值不超时 */ private long connectionTimeout; @@ -247,18 +247,18 @@ public MailAccount setPass(String pass) { } /** - * 获取发送方,遵循RFC-822标准 + * 获取发送方,遵循RFC-822标准 * - * @return 发送方,遵循RFC-822标准 + * @return 发送方, 遵循RFC-822标准 */ public String getFrom() { return from; } /** - * 设置发送方,遵循RFC-822标准 + * 设置发送方,遵循RFC-822标准 * - * @param from 发送方,遵循RFC-822标准 + * @param from 发送方,遵循RFC-822标准 * @return this */ public MailAccount setFrom(String from) { @@ -267,18 +267,18 @@ public MailAccount setFrom(String from) { } /** - * 是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启 + * 是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启 * - * @return 是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启 + * @return 是否打开调试模式, 调试模式会显示与邮件服务器通信过程, 默认不开启 */ public boolean isDebug() { return debug; } /** - * 设置是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启 + * 设置是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启 * - * @param debug 是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启 + * @param debug 是否打开调试模式,调试模式会显示与邮件服务器通信过程,默认不开启 * @return MailAccount */ public MailAccount setDebug(boolean debug) { @@ -307,7 +307,7 @@ public MailAccount setCharset(Charset charset) { } /** - * 对于超长参数是否切分为多份,默认为false(国内邮箱附件不支持切分的附件名) + * 对于超长参数是否切分为多份,默认为false(国内邮箱附件不支持切分的附件名) * * @return 对于超长参数是否切分为多份 */ @@ -316,7 +316,7 @@ public boolean isSplitlongparameters() { } /** - * 设置对于超长参数是否切分为多份,默认为false(国内邮箱附件不支持切分的附件名) + * 设置对于超长参数是否切分为多份,默认为false(国内邮箱附件不支持切分的附件名) * * @param splitlongparameters 对于超长参数是否切分为多份 */ @@ -325,7 +325,7 @@ public void setSplitlongparameters(boolean splitlongparameters) { } /** - * 是否使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口。 + * 是否使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展 它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口 * * @return 是否使用 STARTTLS安全连接 */ @@ -334,7 +334,7 @@ public boolean isStartttlsEnable() { } /** - * 设置是否使用STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口。 + * 设置是否使用STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展 它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口 * * @param startttlsEnable 是否使用STARTTLS安全连接 * @return this @@ -405,18 +405,18 @@ public MailAccount setSocketFactoryFallback(boolean socketFactoryFallback) { } /** - * 获取指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口 + * 获取指定的端口连接到在使用指定的套接字工厂 如果没有设置,将使用默认端口 * - * @return 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口 + * @return 指定的端口连接到在使用指定的套接字工厂 如果没有设置,将使用默认端口 */ public int getSocketFactoryPort() { return socketFactoryPort; } /** - * 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口 + * 指定的端口连接到在使用指定的套接字工厂 如果没有设置,将使用默认端口 * - * @param socketFactoryPort 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口 + * @param socketFactoryPort 指定的端口连接到在使用指定的套接字工厂 如果没有设置,将使用默认端口 * @return this */ public MailAccount setSocketFactoryPort(int socketFactoryPort) { @@ -425,9 +425,9 @@ public MailAccount setSocketFactoryPort(int socketFactoryPort) { } /** - * 设置SMTP超时时长,单位毫秒,缺省值不超时 + * 设置SMTP超时时长,单位毫秒,缺省值不超时 * - * @param timeout SMTP超时时长,单位毫秒,缺省值不超时 + * @param timeout SMTP超时时长,单位毫秒,缺省值不超时 * @return this */ public MailAccount setTimeout(long timeout) { @@ -436,9 +436,9 @@ public MailAccount setTimeout(long timeout) { } /** - * 设置Socket连接超时值,单位毫秒,缺省值不超时 + * 设置Socket连接超时值,单位毫秒,缺省值不超时 * - * @param connectionTimeout Socket连接超时值,单位毫秒,缺省值不超时 + * @param connectionTimeout Socket连接超时值,单位毫秒,缺省值不超时 * @return this */ public MailAccount setConnectionTimeout(long connectionTimeout) { @@ -470,11 +470,11 @@ public Properties getSmtpProps() { p.put(MAIL_DEBUG, String.valueOf(this.debug)); if (this.startttlsEnable) { - //STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口。 + //STARTTLS是对纯文本通信协议的扩展 它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口 p.put(STARTTTLS_ENABLE, String.valueOf(this.startttlsEnable)); if (null == this.sslEnable) { - //为了兼容旧版本,当用户没有此项配置时,按照startttlsEnable开启状态时对待 + //为了兼容旧版本,当用户没有此项配置时,按照startttlsEnable开启状态时对待 this.sslEnable = true; } } @@ -490,7 +490,7 @@ public Properties getSmtpProps() { } /** - * 如果某些值为null,使用默认值 + * 如果某些值为null,使用默认值 * * @return this */ @@ -499,19 +499,19 @@ public MailAccount defaultIfEmpty() { final String fromAddress = InternalMail.parseFirstAddress(this.from, this.charset).getAddress(); if (StringUtils.isBlank(this.host)) { - // 如果SMTP地址为空,默认使用smtp.<发件人邮箱后缀> + // 如果SMTP地址为空,默认使用smtp.<发件人邮箱后缀> this.host = StringUtils.format("smtp.{}", StringUtils.subSuf(fromAddress, fromAddress.indexOf('@') + 1)); } if (StringUtils.isBlank(user)) { - // 如果用户名为空,默认为发件人邮箱前缀 + // 如果用户名为空,默认为发件人邮箱前缀 this.user = StringUtils.subPre(fromAddress, fromAddress.indexOf('@')); } if (null == this.auth) { - // 如果密码非空白,则使用认证模式 + // 如果密码非空白,则使用认证模式 this.auth = (false == StringUtils.isBlank(this.pass)); } if (null == this.port) { - // 端口在SSL状态下默认与socketFactoryPort一致,非SSL状态下默认为25 + // 端口在SSL状态下默认与socketFactoryPort一致,非SSL状态下默认为25 this.port = (null != this.sslEnable && this.sslEnable) ? this.socketFactoryPort : 25; } if (null == this.charset) { diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/qrcode/QrConfig.java b/bus-extra/src/main/java/org/aoju/bus/extra/qrcode/QrConfig.java index 33d2fa5681..ea7a3a7fc6 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/qrcode/QrConfig.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/qrcode/QrConfig.java @@ -78,12 +78,12 @@ public class QrConfig { */ public Image img; /** - * 二维码中的Logo缩放的比例系数,如5表示长宽最小值的1/5 + * 二维码中的Logo缩放的比例系数,如5表示长宽最小值的1/5 */ public int ratio = 6; /** - * 构造,默认长宽为300 + * 构造,默认长宽为300 */ public QrConfig() { this(300, 300); @@ -159,7 +159,7 @@ public int getForeColor() { } /** - * 设置前景色,例如:Color.BLUE.getRGB() + * 设置前景色,例如:Color.BLUE.getRGB() * * @param foreColor 前景色 * @return this @@ -179,7 +179,7 @@ public int getBackColor() { } /** - * 设置背景色,例如:Color.BLUE.getRGB() + * 设置背景色,例如:Color.BLUE.getRGB() * * @param backColor 背景色 * @return this @@ -290,18 +290,18 @@ public QrConfig setImg(Image img) { } /** - * 获取二维码中的Logo缩放的比例系数,如5表示长宽最小值的1/5 + * 获取二维码中的Logo缩放的比例系数,如5表示长宽最小值的1/5 * - * @return 二维码中的Logo缩放的比例系数,如5表示长宽最小值的1/5 + * @return 二维码中的Logo缩放的比例系数, 如5表示长宽最小值的1/5 */ public int getRatio() { return this.ratio; } /** - * 设置二维码中的Logo缩放的比例系数,如5表示长宽最小值的1/5 + * 设置二维码中的Logo缩放的比例系数,如5表示长宽最小值的1/5 * - * @param ratio 二维码中的Logo缩放的比例系数,如5表示长宽最小值的1/5 + * @param ratio 二维码中的Logo缩放的比例系数,如5表示长宽最小值的1/5 * @return this; */ public QrConfig setRatio(int ratio) { diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/ssh/Connector.java b/bus-extra/src/main/java/org/aoju/bus/extra/ssh/Connector.java index 88f79a61fc..19c2c98a9e 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/ssh/Connector.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/ssh/Connector.java @@ -24,7 +24,7 @@ package org.aoju.bus.extra.ssh; /** - * 连接者对象,提供一些连接的基本信息 + * 连接者对象,提供一些连接的基本信息 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/ssh/JschSessionPool.java b/bus-extra/src/main/java/org/aoju/bus/extra/ssh/JschSessionPool.java index 5349059161..286863f132 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/ssh/JschSessionPool.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/ssh/JschSessionPool.java @@ -49,12 +49,12 @@ public enum JschSessionPool { */ private static final Object lock = new Object(); /** - * SSH会话池,key:host,value:Session对象 + * SSH会话池,key:host,value:Session对象 */ private Map sessionPool = new ConcurrentHashMap(); /** - * 获取Session,不存在返回null + * 获取Session,不存在返回null * * @param key 键 * @return Session @@ -64,7 +64,7 @@ public Session get(String key) { } /** - * 获得一个SSH跳板机会话,重用已经使用的会话 + * 获得一个SSH跳板机会话,重用已经使用的会话 * * @param sshHost 跳板机主机 * @param sshPort 跳板机端口 @@ -100,7 +100,7 @@ public void put(String key, Session session) { /** * 关闭SSH连接会话 * - * @param key 主机,格式为user@host:port + * @param key 主机,格式为user@host:port */ public void close(String key) { Session session = sessionPool.get(key); diff --git a/bus-extra/src/main/java/org/aoju/bus/extra/ssh/Sftp.java b/bus-extra/src/main/java/org/aoju/bus/extra/ssh/Sftp.java index e421ee5406..048a2e96bf 100755 --- a/bus-extra/src/main/java/org/aoju/bus/extra/ssh/Sftp.java +++ b/bus-extra/src/main/java/org/aoju/bus/extra/ssh/Sftp.java @@ -43,9 +43,9 @@ import java.util.Vector; /** - * SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。 - * SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SFTP是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。 - * 但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。 + * SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议 可以为传输文件提供一种安全的加密方法 + * SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式 SFTP是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的 + * 但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP * *

    * 此类为基于jsch的SFTP实现 @@ -204,7 +204,7 @@ public String home() { } /** - * 遍历某个目录下所有文件或目录,不会递归遍历 + * 遍历某个目录下所有文件或目录,不会递归遍历 * * @param path 遍历某个目录下所有文件或目录 * @return 目录或文件名列表 @@ -215,7 +215,7 @@ public List ls(String path) { } /** - * 遍历某个目录下所有目录,不会递归遍历 + * 遍历某个目录下所有目录,不会递归遍历 * * @param path 遍历某个目录下所有目录 * @return 目录名列表 @@ -230,7 +230,7 @@ public boolean accept(LsEntry t) { } /** - * 遍历某个目录下所有文件,不会递归遍历 + * 遍历某个目录下所有文件,不会递归遍历 * * @param path 遍历某个目录下所有文件 * @return 文件名列表 @@ -245,10 +245,10 @@ public boolean accept(LsEntry t) { } /** - * 遍历某个目录下所有文件或目录,不会递归遍历 + * 遍历某个目录下所有文件或目录,不会递归遍历 * * @param path 遍历某个目录下所有文件或目录 - * @param filter 文件或目录过滤器,可以实现过滤器返回自己需要的文件或目录名列表 + * @param filter 文件或目录过滤器,可以实现过滤器返回自己需要的文件或目录名列表 * @return 目录或文件名列表 */ public List ls(String path, final Filter filter) { @@ -283,7 +283,7 @@ public boolean mkdir(String dir) { } /** - * 打开指定目录,如果指定路径非目录或不存在返回false + * 打开指定目录,如果指定路径非目录或不存在返回false * * @param directory directory * @return 是否打开目录 @@ -368,10 +368,10 @@ public boolean upload(String srcFilePath, File destFile) { } /** - * 将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同。覆盖模式 + * 将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同 覆盖模式 * * @param srcFilePath 本地文件路径 - * @param destPath 目标路径, + * @param destPath 目标路径, * @return this */ public Sftp put(String srcFilePath, String destPath) { @@ -379,10 +379,10 @@ public Sftp put(String srcFilePath, String destPath) { } /** - * 将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同。 + * 将本地文件上传到目标服务器,目标文件名为destPath,若destPath为目录,则目标文件名将与srcFilePath文件名相同 * * @param srcFilePath 本地文件路径 - * @param destPath 目标路径, + * @param destPath 目标路径, * @param mode {@link Mode} 模式 * @return this */ @@ -427,15 +427,15 @@ public void close() throws IOException { */ public static enum Mode { /** - * 完全覆盖模式,这是JSch的默认文件传输模式,即如果目标文件已经存在,传输的文件将完全覆盖目标文件,产生新的文件。 + * 完全覆盖模式,这是JSch的默认文件传输模式,即如果目标文件已经存在,传输的文件将完全覆盖目标文件,产生新的文件 */ OVERWRITE, /** - * 恢复模式,如果文件已经传输一部分,这时由于网络或其他任何原因导致文件传输中断,如果下一次传输相同的文件,则会从上一次中断的地方续传。 + * 恢复模式,如果文件已经传输一部分,这时由于网络或其他任何原因导致文件传输中断,如果下一次传输相同的文件,则会从上一次中断的地方续传 */ RESUME, /** - * 追加模式,如果目标文件已存在,传输的文件将在目标文件后追加。 + * 追加模式,如果目标文件已存在,传输的文件将在目标文件后追加 */ APPEND; } diff --git a/bus-forest/src/main/java/org/aoju/bus/forest/Builder.java b/bus-forest/src/main/java/org/aoju/bus/forest/Builder.java index 2a44b846af..0b1209e2fa 100755 --- a/bus-forest/src/main/java/org/aoju/bus/forest/Builder.java +++ b/bus-forest/src/main/java/org/aoju/bus/forest/Builder.java @@ -43,7 +43,7 @@ import java.util.jar.Attributes; /** - * Jar 工具类,包含I/O,密钥,过滤器的工具方法。 + * Jar 工具类,包含I/O,密钥,过滤器的工具方法 * * @author Kimi Liu * @version 5.2.2 @@ -51,41 +51,34 @@ */ public abstract class Builder { - public static String BOOT_INF_CLASSES = "BOOT-INF/classes/"; - public static String BOOT_INF_LIB = "BOOT-INF/lib/"; - public static final String WEB_INF_CLASSES = "WEB-INF/classes/"; public static final String WEB_INF_LIB = "WEB-INF/lib/"; - public static final String META_INF_MANIFEST = "META-INF/MANIFEST.MF"; public static final String XJAR_SRC_DIR = Builder.class.getPackage().getName().replace(Symbol.C_DOT, Symbol.C_SLASH) + Symbol.SLASH; public static final String XJAR_INF_DIR = "META-INF/"; public static final String XJAR_INF_IDX = "FOREST.MF"; - public static String CRLF = System.getProperty("line.separator"); - public static final String XJAR_ALGORITHM = "--xjar.algorithm="; public static final String XJAR_KEYSIZE = "--xjar.keysize="; public static final String XJAR_IVSIZE = "--xjar.ivsize="; public static final String XJAR_PASSWORD = "--xjar.password="; public static final String XJAR_KEYFILE = "--xjar.keyfile="; - public static final String XJAR_ALGORITHM_KEY = "Jar-Algorithm"; public static final String XJAR_KEYSIZE_KEY = "Jar-Keysize"; public static final String XJAR_IVSIZE_KEY = "Jar-Ivsize"; public static final String XJAR_PASSWORD_KEY = "Jar-Password"; - public static final String XJAR_KEY_ALGORITHM = "algorithm"; public static final String XJAR_KEY_KEYSIZE = "keysize"; public static final String XJAR_KEY_IVSIZE = "ivsize"; public static final String XJAR_KEY_PASSWORD = "password"; public static final String XJAR_KEY_HOLD = "hold"; - public static final String DEFAULT_ALGORITHM = "AES"; - + public static String BOOT_INF_CLASSES = "BOOT-INF/classes/"; + public static String BOOT_INF_LIB = "BOOT-INF/lib/"; + public static String CRLF = System.getProperty("line.separator"); public static int DEFAULT_KEYSIZE = 128; public static int DEFAULT_IVSIZE = 128; - // 保留密钥在 META-INF/MANIFEST.MF 中,启动时无需输入密钥。 + // 保留密钥在 META-INF/MANIFEST.MF 中,启动时无需输入密钥 public static int FLAG_DANGER = 1; // 危险模式:保留密钥 public static int MODE_DANGER = FLAG_DANGER; @@ -137,7 +130,7 @@ public static void writeln(OutputStream out, byte[] line) throws IOException { } /** - * 关闭资源,等效于XKit.close(closeable, true); + * 关闭资源,等效于XKit.close(closeable, true); * * @param closeable 资源 */ @@ -153,7 +146,7 @@ public static void close(Closeable closeable) { * 关闭资源 * * @param closeable 资源 - * @param quietly 是否安静关闭,即捕获到关闭异常时是否忽略 + * @param quietly 是否安静关闭,即捕获到关闭异常时是否忽略 * @throws IOException 当quietly == false, 时捕获到的I/O异常将会往外抛 */ public static void close(Closeable closeable, boolean quietly) throws IOException { @@ -245,7 +238,7 @@ public static long transfer(Reader reader, File file) throws IOException { } /** - * 删除文件,如果是目录将不递归删除子文件或目录,等效于delete(file, false); + * 删除文件,如果是目录将不递归删除子文件或目录,等效于delete(file, false); * * @param file 文件/目录 * @return 是否删除成功 @@ -255,7 +248,7 @@ public static boolean delete(File file) { } /** - * 删除文件,如果是目录将递归删除子文件或目录 + * 删除文件,如果是目录将递归删除子文件或目录 * * @param file 文件/目录 * @param recursively 递归 @@ -431,7 +424,7 @@ public static AnyComplex or(Collection> filters) { } /** - * 创建非门逻辑运算过滤器,实际上就是将委派过滤器的过滤结果取反 + * 创建非门逻辑运算过滤器,实际上就是将委派过滤器的过滤结果取反 * * @param 对象 * @param filter 委派过滤器 diff --git a/bus-forest/src/main/java/org/aoju/bus/forest/boot/Boot.java b/bus-forest/src/main/java/org/aoju/bus/forest/boot/Boot.java index 25392bdd14..09a8e35885 100755 --- a/bus-forest/src/main/java/org/aoju/bus/forest/boot/Boot.java +++ b/bus-forest/src/main/java/org/aoju/bus/forest/boot/Boot.java @@ -34,7 +34,7 @@ import java.util.zip.Deflater; /** - * Spring-Boot JAR包加解密工具类,在不提供过滤器的情况下会加密BOOT-INF/下的所有资源,及包括项目本身的资源和依赖jar资源。 + * Spring-Boot JAR包加解密工具类,在不提供过滤器的情况下会加密BOOT-INF/下的所有资源,及包括项目本身的资源和依赖jar资源 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-forest/src/main/java/org/aoju/bus/forest/complex/AllComplex.java b/bus-forest/src/main/java/org/aoju/bus/forest/complex/AllComplex.java index c6a448c6b0..fccf5214ed 100755 --- a/bus-forest/src/main/java/org/aoju/bus/forest/complex/AllComplex.java +++ b/bus-forest/src/main/java/org/aoju/bus/forest/complex/AllComplex.java @@ -29,8 +29,8 @@ /** * ALL逻辑混合规则 - * 只要有一个规则不满足就立刻返回, - * 如果没有规则的时候则认为所有规则都满足。 + * 只要有一个规则不满足就立刻返回, + * 如果没有规则的时候则认为所有规则都满足 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-forest/src/main/java/org/aoju/bus/forest/complex/AnyComplex.java b/bus-forest/src/main/java/org/aoju/bus/forest/complex/AnyComplex.java index 92edb331d3..0c65d1bb89 100755 --- a/bus-forest/src/main/java/org/aoju/bus/forest/complex/AnyComplex.java +++ b/bus-forest/src/main/java/org/aoju/bus/forest/complex/AnyComplex.java @@ -28,8 +28,8 @@ import java.util.Collection; /** - * ANY逻辑混合规则,即任意一个规则满足时就满足, - * 当没有规则的时候,就是不满足。 + * ANY逻辑混合规则,即任意一个规则满足时就满足, + * 当没有规则的时候,就是不满足 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-forest/src/main/java/org/aoju/bus/forest/complex/RegexComplex.java b/bus-forest/src/main/java/org/aoju/bus/forest/complex/RegexComplex.java index 61961721a5..27ac2e5e0a 100755 --- a/bus-forest/src/main/java/org/aoju/bus/forest/complex/RegexComplex.java +++ b/bus-forest/src/main/java/org/aoju/bus/forest/complex/RegexComplex.java @@ -53,7 +53,7 @@ public boolean on(E entry) { } /** - * 将记录转换成字符串形式,用于模式匹配。 + * 将记录转换成字符串形式,用于模式匹配 * * @param entry 记录 * @return 记录的字符串表达形式 diff --git a/bus-forest/src/main/java/org/aoju/bus/forest/provider/DecryptorProvider.java b/bus-forest/src/main/java/org/aoju/bus/forest/provider/DecryptorProvider.java index 1288119d2c..497b79b622 100755 --- a/bus-forest/src/main/java/org/aoju/bus/forest/provider/DecryptorProvider.java +++ b/bus-forest/src/main/java/org/aoju/bus/forest/provider/DecryptorProvider.java @@ -40,7 +40,7 @@ public interface DecryptorProvider { /** - * 解密,将目标文件解密输出至目标文件。 + * 解密,将目标文件解密输出至目标文件 * * @param key 密钥 * @param src 源文件 @@ -50,7 +50,7 @@ public interface DecryptorProvider { void decrypt(Key key, File src, File dest) throws IOException; /** - * 解密,将输入流解密输出至输出流。 + * 解密,将输入流解密输出至输出流 * * @param key 密钥 * @param in 输入流 @@ -60,7 +60,7 @@ public interface DecryptorProvider { void decrypt(Key key, InputStream in, OutputStream out) throws IOException; /** - * 解密,将输入流包装成解密的输入流 + * 解密,将输入流包装成解密的输入流 * * @param key 密钥 * @param in 输入流 @@ -70,7 +70,7 @@ public interface DecryptorProvider { InputStream decrypt(Key key, InputStream in) throws IOException; /** - * 解密,将输入流包装成解密的输出流 + * 解密,将输入流包装成解密的输出流 * * @param key 密钥 * @param out 输出流 diff --git a/bus-forest/src/main/java/org/aoju/bus/forest/provider/EncryptorProvider.java b/bus-forest/src/main/java/org/aoju/bus/forest/provider/EncryptorProvider.java index c6751991ee..94d0d20674 100755 --- a/bus-forest/src/main/java/org/aoju/bus/forest/provider/EncryptorProvider.java +++ b/bus-forest/src/main/java/org/aoju/bus/forest/provider/EncryptorProvider.java @@ -40,7 +40,7 @@ public interface EncryptorProvider { /** - * 加密,将目标文件加密输出至目标文件。 + * 加密,将目标文件加密输出至目标文件 * * @param key 密钥 * @param src 源文件 @@ -50,7 +50,7 @@ public interface EncryptorProvider { void encrypt(Key key, File src, File dest) throws IOException; /** - * 加密,将输入流加密输出至输出流。 + * 加密,将输入流加密输出至输出流 * * @param key 密钥 * @param in 输入流 @@ -60,7 +60,7 @@ public interface EncryptorProvider { void encrypt(Key key, InputStream in, OutputStream out) throws IOException; /** - * 加密,将输入流包装成加密的输入流 + * 加密,将输入流包装成加密的输入流 * * @param key 密钥 * @param in 输入流 @@ -70,7 +70,7 @@ public interface EncryptorProvider { InputStream encrypt(Key key, InputStream in) throws IOException; /** - * 加密,将输入流包装成加密的输出流 + * 加密,将输入流包装成加密的输出流 * * @param key 密钥 * @param out 输出流 diff --git a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/ContainerRegistryApi.java b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/ContainerRegistryApi.java index 8e5b53cd42..7082b3d280 100755 --- a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/ContainerRegistryApi.java +++ b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/ContainerRegistryApi.java @@ -1,5 +1,3 @@ - - package org.aoju.bus.gitlab; import org.aoju.bus.gitlab.models.RegistryRepository; diff --git a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/GitLabApi.java b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/GitLabApi.java index abe2c4401a..60b0050adb 100755 --- a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/GitLabApi.java +++ b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/GitLabApi.java @@ -75,6 +75,7 @@ public class GitLabApi { private TodosApi todosApi; private UserApi userApi; private WikisApi wikisApi; + /** * Constructs a GitLabApi instance set up to interact with the GitLab server using the specified GitLab API version. * diff --git a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/PackagesApi.java b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/PackagesApi.java index 48fc10dc04..2420996478 100755 --- a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/PackagesApi.java +++ b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/PackagesApi.java @@ -1,5 +1,3 @@ - - package org.aoju.bus.gitlab; import org.aoju.bus.gitlab.models.Package; diff --git a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/ProjectApi.java b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/ProjectApi.java index 019be30213..339c7e29fe 100755 --- a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/ProjectApi.java +++ b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/ProjectApi.java @@ -1,5 +1,3 @@ - - package org.aoju.bus.gitlab; import org.aoju.bus.gitlab.GitLabApi.ApiVersion; diff --git a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/WikisApi.java b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/WikisApi.java index 123ef01c84..e9574debef 100755 --- a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/WikisApi.java +++ b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/WikisApi.java @@ -1,5 +1,3 @@ - - package org.aoju.bus.gitlab; import org.aoju.bus.gitlab.models.WikiAttachment; diff --git a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/JobStatus.java b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/JobStatus.java index 5e2fad1336..2d4053c6ad 100755 --- a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/JobStatus.java +++ b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/JobStatus.java @@ -1,5 +1,3 @@ - - package org.aoju.bus.gitlab.models; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/Variable.java b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/Variable.java index 4d20c35a83..8d8337b5f1 100755 --- a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/Variable.java +++ b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/Variable.java @@ -20,6 +20,7 @@ public class Variable { @JsonProperty("masked") private Boolean isMasked; private String environmentScope; + public Variable() { } diff --git a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/Visibility.java b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/Visibility.java index 084aae3d91..b115a99e14 100755 --- a/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/Visibility.java +++ b/bus-gitlab/src/main/java/org/aoju/bus/gitlab/models/Visibility.java @@ -1,5 +1,3 @@ - - package org.aoju.bus.gitlab.models; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/bus-health/src/main/java/org/aoju/bus/health/HealthUtils.java b/bus-health/src/main/java/org/aoju/bus/health/HealthUtils.java index 9472715101..9a503157e5 100755 --- a/bus-health/src/main/java/org/aoju/bus/health/HealthUtils.java +++ b/bus-health/src/main/java/org/aoju/bus/health/HealthUtils.java @@ -35,7 +35,7 @@ import java.util.Properties; /** - * Java的System类封装工具类。 + * Java的System类封装工具类 * http://blog.csdn.net/zhongweijian/article/details/7619383 * * @author Kimi Liu @@ -45,7 +45,7 @@ public class HealthUtils { /** - * 取得系统属性,如果因为Java安全的限制而失败,则将错误打在Log中,然后返回 null。 + * 取得系统属性,如果因为Java安全的限制而失败,则将错误打在Log中,然后返回 null * * @param name 属性名 * @param defaultValue 默认值 @@ -56,10 +56,10 @@ public static String get(String name, String defaultValue) { } /** - * 取得系统属性,如果因为Java安全的限制而失败,则将错误打在Log中,然后返回 null。 + * 取得系统属性,如果因为Java安全的限制而失败,则将错误打在Log中,然后返回 null * * @param name 属性名 - * @param quiet 安静模式,不将出错信息打在System.err中 + * @param quiet 安静模式,不将出错信息打在System.err中 * @return 属性值或null */ public static String get(String name, boolean quiet) { @@ -185,9 +185,9 @@ public static RuntimeMXBean getRuntimeMXBean() { /** * 返回Java虚拟机编译系统相关属性 - * 如果没有编译系统,则返回null + * 如果没有编译系统,则返回null * - * @return a {@link CompilationMXBean} ,如果没有编译系统,则返回null + * @return a {@link CompilationMXBean} ,如果没有编译系统,则返回null */ public static CompilationMXBean getCompilationMXBean() { return ManagementFactory.getCompilationMXBean(); @@ -232,7 +232,7 @@ public static List getGarbageCollectorMXBeans() { } /** - * 取得Java Virtual Machine Specification的信息。 + * 取得Java Virtual Machine Specification的信息 * * @return JvmSpecInfo对象 */ @@ -241,7 +241,7 @@ public static JvmSpecInfo getJvmSpecInfo() { } /** - * 取得Java Virtual Machine Implementation的信息。 + * 取得Java Virtual Machine Implementation的信息 * * @return JvmInfo对象 */ @@ -250,7 +250,7 @@ public static JvmInfo getJvmInfo() { } /** - * 取得Java Specification的信息。 + * 取得Java Specification的信息 * * @return JavaSpecInfo对象 */ @@ -259,7 +259,7 @@ public static JavaSpecInfo getJavaSpecInfo() { } /** - * 取得Java Implementation的信息。 + * 取得Java Implementation的信息 * * @return JavaInfo对象 */ @@ -268,7 +268,7 @@ public static JavaInfo getJavaInfo() { } /** - * 取得当前运行的JRE的信息。 + * 取得当前运行的JRE的信息 * * @return JreInfo对象 */ @@ -277,7 +277,7 @@ public static JavaRuntimeInfo getJavaRuntimeInfo() { } /** - * 取得OS的信息。 + * 取得OS的信息 * * @return OsInfo对象 */ @@ -286,7 +286,7 @@ public static OsInfo getOsInfo() { } /** - * 取得User的信息。 + * 取得User的信息 * * @return UserInfo对象 */ @@ -295,7 +295,7 @@ public static UserInfo getUserInfo() { } /** - * 取得Host的信息。 + * 取得Host的信息 * * @return HostInfo对象 */ @@ -304,7 +304,7 @@ public static HostInfo getHostInfo() { } /** - * 取得Runtime的信息。 + * 取得Runtime的信息 * * @return RuntimeInfo对象 */ @@ -313,14 +313,14 @@ public static RuntimeInfo getRuntimeInfo() { } /** - * 将系统信息输出到System.out中。 + * 将系统信息输出到System.out中 */ public static void dumpSystemInfo() { dumpSystemInfo(new PrintWriter(System.out)); } /** - * 将系统信息输出到指定PrintWriter中。 + * 将系统信息输出到指定PrintWriter中 * * @param out PrintWriter输出流 */ @@ -348,7 +348,7 @@ public static void dumpSystemInfo(PrintWriter out) { } /** - * 输出到StringBuilder。 + * 输出到StringBuilder * * @param builder StringBuilder对象 * @param caption 标题 diff --git a/bus-health/src/main/java/org/aoju/bus/health/HostInfo.java b/bus-health/src/main/java/org/aoju/bus/health/HostInfo.java index 7f931f0e8c..681ce24f5c 100755 --- a/bus-health/src/main/java/org/aoju/bus/health/HostInfo.java +++ b/bus-health/src/main/java/org/aoju/bus/health/HostInfo.java @@ -29,7 +29,7 @@ import java.util.Enumeration; /** - * 代表当前主机的信息。 + * 代表当前主机的信息 * * @author Kimi Liu * @version 5.2.2 @@ -59,7 +59,7 @@ public HostInfo() { } /** - * 取得当前主机信息。 + * 取得当前主机信息 * * @return 主机地址信息 * @throws UnknownHostException 异常 @@ -75,10 +75,10 @@ public static InetAddress getLocalAddress() throws UnknownHostException { InetAddress inetAddr = (InetAddress) inetAddrs.nextElement(); if (!inetAddr.isLoopbackAddress()) {// 排除loopback类型地址 if (inetAddr.isSiteLocalAddress()) { - /** 如果是site-local地址,就是它了 */ + /** 如果是site-local地址,就是它了 */ return inetAddr; } else if (inetAddress == null) { - /** site-local类型的地址未被发现,先记录候选地址 */ + /** site-local类型的地址未被发现,先记录候选地址 */ inetAddress = inetAddr; } } @@ -101,7 +101,7 @@ public static InetAddress getLocalAddress() throws UnknownHostException { } /** - * 取得当前主机的名称。 + * 取得当前主机的名称 * *

    * 例如:"webserver1" @@ -114,7 +114,7 @@ public final String getName() { } /** - * 取得当前主机的地址。 + * 取得当前主机的地址 * *

    * 例如:"192.168.0.1" @@ -127,7 +127,7 @@ public final String getAddress() { } /** - * 将当前主机的信息转换成字符串。 + * 将当前主机的信息转换成字符串 * * @return 主机信息的字符串表示 */ diff --git a/bus-health/src/main/java/org/aoju/bus/health/JavaInfo.java b/bus-health/src/main/java/org/aoju/bus/health/JavaInfo.java index 13fab3af93..0c6f5af1f3 100755 --- a/bus-health/src/main/java/org/aoju/bus/health/JavaInfo.java +++ b/bus-health/src/main/java/org/aoju/bus/health/JavaInfo.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.consts.System; /** - * 代表Java Implementation的信息。 + * 代表Java Implementation的信息 * * @author Kimi Liu * @version 5.2.2 @@ -51,12 +51,12 @@ public class JavaInfo { private final boolean IS_JAVA_1_8 = getJavaVersionMatches("1.8"); /** - * 取得当前Java impl.的版本(取自系统属性:java.version)。 + * 取得当前Java impl.的版本(取自系统属性:java.version) * *

    * 例如Sun JDK 1.4.2:"1.4.2" * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getVersion() { @@ -64,34 +64,34 @@ public final String getVersion() { } /** - * 取得当前Java impl.的版本(取自系统属性:java.version)。 + * 取得当前Java impl.的版本(取自系统属性:java.version) * *

    * 例如: * *

      - *
    • JDK 1.2:1.2f
    • + *
    • JDK 1.2:1.2f
    • *
    • JDK 1.3.1:1.31f
    • *
    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回0。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回0 */ public final float getVersionFloat() { return JAVA_VERSION_FLOAT; } /** - * 取得当前Java impl.的版本(取自系统属性:java.version)。 + * 取得当前Java impl.的版本(取自系统属性:java.version) * *

    * 例如: * *

      - *
    • JDK 1.2:120
    • + *
    • JDK 1.2:120
    • *
    • JDK 1.3.1:131
    • *
    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回0。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回0 * @since Java 1.1 */ public final int getVersionInt() { @@ -99,7 +99,7 @@ public final int getVersionInt() { } /** - * 取得当前Java impl.的版本的float值。 + * 取得当前Java impl.的版本的float值 * * @return Java版本的float值或0 */ @@ -118,7 +118,7 @@ private final float getJavaVersionAsFloat() { } /** - * 取得当前Java impl.的版本的int值。 + * 取得当前Java impl.的版本的int值 * * @return Java版本的int值或0 */ @@ -141,12 +141,12 @@ private final int getJavaVersionAsInt() { } /** - * 取得当前Java impl.的厂商(取自系统属性:java.vendor)。 + * 取得当前Java impl.的厂商(取自系统属性:java.vendor) * *

    * 例如Sun JDK 1.4.2:"Sun Microsystems Inc." * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getVendor() { @@ -154,12 +154,12 @@ public final String getVendor() { } /** - * 取得当前Java impl.的厂商网站的URL(取自系统属性:java.vendor.url)。 + * 取得当前Java impl.的厂商网站的URL(取自系统属性:java.vendor.url) * *

    * 例如Sun JDK 1.4.2:"http://java.sun.com/" * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getVendorURL() { @@ -167,106 +167,106 @@ public final String getVendorURL() { } /** - * 判断当前Java的版本。 + * 判断当前Java的版本 * *

    - * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false + * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false * - * @return 如果当前Java版本为1.1,则返回true + * @return 如果当前Java版本为1.1, 则返回true */ public final boolean isJava11() { return IS_JAVA_1_1; } /** - * 判断当前Java的版本。 + * 判断当前Java的版本 * *

    - * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false + * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false * - * @return 如果当前Java版本为1.2,则返回true + * @return 如果当前Java版本为1.2, 则返回true */ public final boolean isJava12() { return IS_JAVA_1_2; } /** - * 判断当前Java的版本。 + * 判断当前Java的版本 * *

    - * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false + * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false * - * @return 如果当前Java版本为1.3,则返回true + * @return 如果当前Java版本为1.3, 则返回true */ public final boolean isJava13() { return IS_JAVA_1_3; } /** - * 判断当前Java的版本。 + * 判断当前Java的版本 * *

    - * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false + * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false * - * @return 如果当前Java版本为1.4,则返回true + * @return 如果当前Java版本为1.4, 则返回true */ public final boolean isJava14() { return IS_JAVA_1_4; } /** - * 判断当前Java的版本。 + * 判断当前Java的版本 * *

    - * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false + * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false * - * @return 如果当前Java版本为1.5,则返回true + * @return 如果当前Java版本为1.5, 则返回true */ public final boolean isJava15() { return IS_JAVA_1_5; } /** - * 判断当前Java的版本。 + * 判断当前Java的版本 * *

    - * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false + * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false * - * @return 如果当前Java版本为1.6,则返回true + * @return 如果当前Java版本为1.6, 则返回true */ public final boolean isJava16() { return IS_JAVA_1_6; } /** - * 判断当前Java的版本。 + * 判断当前Java的版本 * *

    - * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false + * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false * - * @return 如果当前Java版本为1.7,则返回true + * @return 如果当前Java版本为1.7, 则返回true */ public final boolean isJava17() { return IS_JAVA_1_7; } /** - * 判断当前Java的版本。 + * 判断当前Java的版本 * *

    - * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false + * 如果不能取得系统属性java.version(因为Java安全限制),则总是返回 false * - * @return 如果当前Java版本为1.8,则返回true + * @return 如果当前Java版本为1.8, 则返回true */ public final boolean isJava18() { return IS_JAVA_1_8; } /** - * 匹配当前Java的版本。 + * 匹配当前Java的版本 * * @param versionPrefix Java版本前缀 - * @return 如果版本匹配,则返回true + * @return 如果版本匹配, 则返回true */ private final boolean getJavaVersionMatches(String versionPrefix) { if (JAVA_VERSION == null) { @@ -277,7 +277,7 @@ private final boolean getJavaVersionMatches(String versionPrefix) { } /** - * 判定当前Java的版本是否大于等于指定的版本号。 + * 判定当前Java的版本是否大于等于指定的版本号 * *

    * 例如: @@ -289,14 +289,14 @@ private final boolean getJavaVersionMatches(String versionPrefix) { * * * @param requiredVersion 需要的版本 - * @return 如果当前Java版本大于或等于指定的版本,则返回true + * @return 如果当前Java版本大于或等于指定的版本, 则返回true */ public final boolean isJavaVersionAtLeast(float requiredVersion) { return getVersionFloat() >= requiredVersion; } /** - * 判定当前Java的版本是否大于等于指定的版本号。 + * 判定当前Java的版本是否大于等于指定的版本号 * *

    * 例如: @@ -307,14 +307,14 @@ public final boolean isJavaVersionAtLeast(float requiredVersion) { * * * @param requiredVersion 需要的版本 - * @return 如果当前Java版本大于或等于指定的版本,则返回true + * @return 如果当前Java版本大于或等于指定的版本, 则返回true */ public final boolean isJavaVersionAtLeast(int requiredVersion) { return getVersionInt() >= requiredVersion; } /** - * 将Java Implementation的信息转换成字符串。 + * 将Java Implementation的信息转换成字符串 * * @return JVM impl.的字符串表示 */ diff --git a/bus-health/src/main/java/org/aoju/bus/health/JavaRuntimeInfo.java b/bus-health/src/main/java/org/aoju/bus/health/JavaRuntimeInfo.java index 18b2d35976..87571241bf 100755 --- a/bus-health/src/main/java/org/aoju/bus/health/JavaRuntimeInfo.java +++ b/bus-health/src/main/java/org/aoju/bus/health/JavaRuntimeInfo.java @@ -27,7 +27,7 @@ import org.aoju.bus.core.utils.StringUtils; /** - * 代表当前运行的JRE的信息。 + * 代表当前运行的JRE的信息 * * @author Kimi Liu * @version 5.2.2 @@ -60,13 +60,13 @@ public final String getSunArchDataModel() { } /** - * 取得当前JRE的名称(取自系统属性:java.runtime.name)。 + * 取得当前JRE的名称(取自系统属性:java.runtime.name) * *

    * 例如Sun JDK 1.4.2: "Java(TM) 2 Runtime Environment, Standard Edition" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.3 */ public final String getName() { @@ -74,13 +74,13 @@ public final String getName() { } /** - * 取得当前JRE的版本(取自系统属性:java.runtime.version)。 + * 取得当前JRE的版本(取自系统属性:java.runtime.version) * *

    * 例如Sun JDK 1.4.2:"1.4.2-b28" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.3 */ public final String getVersion() { @@ -88,13 +88,13 @@ public final String getVersion() { } /** - * 取得当前JRE的安装目录(取自系统属性:java.home)。 + * 取得当前JRE的安装目录(取自系统属性:java.home) * *

    * 例如Sun JDK 1.4.2:"/opt/jdk1.4.2/jre" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getHomeDir() { @@ -102,13 +102,13 @@ public final String getHomeDir() { } /** - * 取得当前JRE的扩展目录列表(取自系统属性:java.ext.dirs)。 + * 取得当前JRE的扩展目录列表(取自系统属性:java.ext.dirs) * *

    * 例如Sun JDK 1.4.2:"/opt/jdk1.4.2/jre/lib/ext:..." *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.3 */ public final String getExtDirs() { @@ -116,13 +116,13 @@ public final String getExtDirs() { } /** - * 取得当前JRE的endorsed目录列表(取自系统属性:java.endorsed.dirs)。 + * 取得当前JRE的endorsed目录列表(取自系统属性:java.endorsed.dirs) * *

    * 例如Sun JDK 1.4.2:"/opt/jdk1.4.2/jre/lib/endorsed:..." *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.4 */ public final String getEndorsedDirs() { @@ -130,13 +130,13 @@ public final String getEndorsedDirs() { } /** - * 取得当前JRE的系统classpath(取自系统属性:java.class.path)。 + * 取得当前JRE的系统classpath(取自系统属性:java.class.path) * *

    * 例如:"/home/admin/myclasses:/home/admin/..." *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getClassPath() { @@ -144,13 +144,13 @@ public final String getClassPath() { } /** - * 取得当前JRE的系统classpath(取自系统属性:java.class.path)。 + * 取得当前JRE的系统classpath(取自系统属性:java.class.path) * *

    * 例如:"/home/admin/myclasses:/home/admin/..." *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String[] getClassPathArray() { @@ -158,13 +158,13 @@ public final String[] getClassPathArray() { } /** - * 取得当前JRE的class文件格式的版本(取自系统属性:java.class.version)。 + * 取得当前JRE的class文件格式的版本(取自系统属性:java.class.version) * *

    * 例如Sun JDK 1.4.2:"48.0" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getClassVersion() { @@ -172,46 +172,46 @@ public final String getClassVersion() { } /** - * 取得当前JRE的library搜索路径(取自系统属性:java.library.path)。 + * 取得当前JRE的library搜索路径(取自系统属性:java.library.path) * *

    * 例如Sun JDK 1.4.2:"/opt/jdk1.4.2/bin:..." *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getLibraryPath() { return JAVA_LIBRARY_PATH; } /** - * 取得当前JRE的library搜索路径(取自系统属性:java.library.path)。 + * 取得当前JRE的library搜索路径(取自系统属性:java.library.path) * *

    * 例如Sun JDK 1.4.2:"/opt/jdk1.4.2/bin:..." *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String[] getLibraryPathArray() { return StringUtils.split(getLibraryPath(), HealthUtils.get("path.separator", false)); } /** - * 取得当前JRE的URL协议packages列表(取自系统属性:java.library.path)。 + * 取得当前JRE的URL协议packages列表(取自系统属性:java.library.path) * *

    * 例如Sun JDK 1.4.2:"sun.net.www.protocol|..." *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getProtocolPackages() { return HealthUtils.get("java.protocol.handler.pkgs", true); } /** - * 将当前运行的JRE信息转换成字符串。 + * 将当前运行的JRE信息转换成字符串 * * @return JRE信息的字符串表示 */ diff --git a/bus-health/src/main/java/org/aoju/bus/health/JavaSpecInfo.java b/bus-health/src/main/java/org/aoju/bus/health/JavaSpecInfo.java index b0e0a2d326..cdaf28b907 100755 --- a/bus-health/src/main/java/org/aoju/bus/health/JavaSpecInfo.java +++ b/bus-health/src/main/java/org/aoju/bus/health/JavaSpecInfo.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.consts.System; /** - * 代表Java Specification的信息。 + * 代表Java Specification的信息 * * @author Kimi Liu * @version 5.2.2 @@ -35,26 +35,26 @@ public class JavaSpecInfo { /** - * 取得当前Java Spec.的名称(取自系统属性:java.specification.name)。 + * 取得当前Java Spec.的名称(取自系统属性:java.specification.name) * *

    * 例如Sun JDK 1.4.2:"Java Platform API Specification" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getName() { return HealthUtils.get(System.SPECIFICATION_NAME, false); } /** - * 取得当前Java Spec.的版本(取自系统属性:java.specification.version)。 + * 取得当前Java Spec.的版本(取自系统属性:java.specification.version) * *

    * 例如Sun JDK 1.4.2:"1.4" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.3 */ public final String getVersion() { @@ -62,20 +62,20 @@ public final String getVersion() { } /** - * 取得当前Java Spec.的厂商(取自系统属性:java.specification.vendor)。 + * 取得当前Java Spec.的厂商(取自系统属性:java.specification.vendor) * *

    * 例如Sun JDK 1.4.2:"Sun Microsystems Inc." *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getVendor() { return HealthUtils.get(System.SPECIFICATION_VENDOR, false); } /** - * 将Java Specification的信息转换成字符串。 + * 将Java Specification的信息转换成字符串 * * @return JVM spec.的字符串表示 */ diff --git a/bus-health/src/main/java/org/aoju/bus/health/JvmInfo.java b/bus-health/src/main/java/org/aoju/bus/health/JvmInfo.java index 8ef2fe59e7..802892e42b 100755 --- a/bus-health/src/main/java/org/aoju/bus/health/JvmInfo.java +++ b/bus-health/src/main/java/org/aoju/bus/health/JvmInfo.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.consts.System; /** - * 代表Java Virtual Machine Implementation的信息。 + * 代表Java Virtual Machine Implementation的信息 * * @author Kimi Liu * @version 5.2.2 @@ -35,59 +35,59 @@ public class JvmInfo { /** - * 取得当前JVM impl.的名称(取自系统属性:java.vm.name)。 + * 取得当前JVM impl.的名称(取自系统属性:java.vm.name) * *

    * 例如Sun JDK 1.4.2:"Java HotSpot(TM) Client VM" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getName() { return HealthUtils.get(System.VM_NAME, false); } /** - * 取得当前JVM impl.的版本(取自系统属性:java.vm.version)。 + * 取得当前JVM impl.的版本(取自系统属性:java.vm.version) * *

    * 例如Sun JDK 1.4.2:"1.4.2-b28" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getVersion() { return HealthUtils.get(System.VM_VERSION, false); } /** - * 取得当前JVM impl.的厂商(取自系统属性:java.vm.vendor)。 + * 取得当前JVM impl.的厂商(取自系统属性:java.vm.vendor) * *

    * 例如Sun JDK 1.4.2:"Sun Microsystems Inc." *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getVendor() { return HealthUtils.get(System.VM_VENDOR, false); } /** - * 取得当前JVM impl.的信息(取自系统属性:java.vm.info)。 + * 取得当前JVM impl.的信息(取自系统属性:java.vm.info) * *

    * 例如Sun JDK 1.4.2:"mixed mode" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getInfo() { return HealthUtils.get(System.VM_INFO, false); } /** - * 将Java Virutal Machine Implementation的信息转换成字符串。 + * 将Java Virutal Machine Implementation的信息转换成字符串 * * @return JVM impl.的字符串表示 */ diff --git a/bus-health/src/main/java/org/aoju/bus/health/JvmSpecInfo.java b/bus-health/src/main/java/org/aoju/bus/health/JvmSpecInfo.java index f20f88dbd8..16198521c5 100755 --- a/bus-health/src/main/java/org/aoju/bus/health/JvmSpecInfo.java +++ b/bus-health/src/main/java/org/aoju/bus/health/JvmSpecInfo.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.consts.System; /** - * 代表Java Virutal Machine Specification的信息。 + * 代表Java Virutal Machine Specification的信息 * * @author Kimi Liu * @version 5.2.2 @@ -35,46 +35,46 @@ public class JvmSpecInfo { /** - * 取得当前JVM spec.的名称(取自系统属性:java.vm.specification.name)。 + * 取得当前JVM spec.的名称(取自系统属性:java.vm.specification.name) * *

    * 例如Sun JDK 1.4.2:"Java Virtual Machine Specification" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getName() { return HealthUtils.get(System.VM_SPECIFICATION_NAME, false); } /** - * 取得当前JVM spec.的版本(取自系统属性:java.vm.specification.version)。 + * 取得当前JVM spec.的版本(取自系统属性:java.vm.specification.version) * *

    * 例如Sun JDK 1.4.2:"1.0" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getVersion() { return HealthUtils.get(System.VM_SPECIFICATION_VERSION, false); } /** - * 取得当前JVM spec.的厂商(取自系统属性:java.vm.specification.vendor)。 + * 取得当前JVM spec.的厂商(取自系统属性:java.vm.specification.vendor) * *

    * 例如Sun JDK 1.4.2:"Sun Microsystems Inc." *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getVendor() { return HealthUtils.get(System.VM_SPECIFICATION_VENDOR, false); } /** - * 将Java Virutal Machine Specification的信息转换成字符串。 + * 将Java Virutal Machine Specification的信息转换成字符串 * * @return JVM spec.的字符串表示 */ diff --git a/bus-health/src/main/java/org/aoju/bus/health/OsInfo.java b/bus-health/src/main/java/org/aoju/bus/health/OsInfo.java index 4fcd5c5a52..589c702fba 100755 --- a/bus-health/src/main/java/org/aoju/bus/health/OsInfo.java +++ b/bus-health/src/main/java/org/aoju/bus/health/OsInfo.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.consts.System; /** - * 代表当前OS的信息。 + * 代表当前OS的信息 * * @author Kimi Liu * @version 5.2.2 @@ -59,19 +59,19 @@ public class OsInfo { private final boolean IS_OS_WINDOWS_8_1 = getOSMatches("Windows", "6.3"); private final boolean IS_OS_WINDOWS_10 = getOSMatches("Windows", "10.0"); - // 由于改变file.encoding属性并不会改变系统字符编码,为了保持一致,通过LocaleUtil取系统默认编码。 + // 由于改变file.encoding属性并不会改变系统字符编码,为了保持一致,通过LocaleUtil取系统默认编码 private final String FILE_SEPARATOR = HealthUtils.get(System.FILE_SEPARATOR, false); private final String LINE_SEPARATOR = HealthUtils.get(System.LINE_SEPARATOR, false); private final String PATH_SEPARATOR = HealthUtils.get(System.PATH_SEPARATOR, false); /** - * 取得当前OS的架构(取自系统属性:os.arch)。 + * 取得当前OS的架构(取自系统属性:os.arch) * *

    * 例如:"x86" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getArch() { @@ -79,13 +79,13 @@ public final String getArch() { } /** - * 取得当前OS的名称(取自系统属性:os.name)。 + * 取得当前OS的名称(取自系统属性:os.name) * *

    * 例如:"Windows XP" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getName() { @@ -93,13 +93,13 @@ public final String getName() { } /** - * 取得当前OS的版本(取自系统属性:os.version)。 + * 取得当前OS的版本(取自系统属性:os.version) * *

    * 例如:"5.1" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getVersion() { @@ -107,270 +107,270 @@ public final String getVersion() { } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为AIX,则返回true + * @return 如果当前OS类型为AIX, 则返回true */ public final boolean isAix() { return IS_OS_AIX; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为HP-UX,则返回true + * @return 如果当前OS类型为HP-UX,则返回true */ public final boolean isHpUx() { return IS_OS_HP_UX; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为IRIX,则返回true + * @return 如果当前OS类型为IRIX, 则返回true */ public final boolean isIrix() { return IS_OS_IRIX; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Linux,则返回true + * @return 如果当前OS类型为Linux, 则返回true */ public final boolean isLinux() { return IS_OS_LINUX; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Mac,则返回true + * @return 如果当前OS类型为Mac, 则返回true */ public final boolean isMac() { return IS_OS_MAC; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为MacOS X,则返回true + * @return 如果当前OS类型为MacOS X,则返回true */ public final boolean isMacOsX() { return IS_OS_MAC_OSX; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为OS2,则返回true + * @return 如果当前OS类型为OS2, 则返回true */ public final boolean isOs2() { return IS_OS_OS2; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Solaris,则返回true + * @return 如果当前OS类型为Solaris, 则返回true */ public final boolean isSolaris() { return IS_OS_SOLARIS; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Sun OS,则返回true + * @return 如果当前OS类型为Sun OS,则返回true */ public final boolean isSunOS() { return IS_OS_SUN_OS; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows,则返回true + * @return 如果当前OS类型为Windows, 则返回true */ public final boolean isWindows() { return IS_OS_WINDOWS; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows 2000,则返回true + * @return 如果当前OS类型为Windows 2000,则返回true */ public final boolean isWindows2000() { return IS_OS_WINDOWS_2000; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows 95,则返回true + * @return 如果当前OS类型为Windows 95,则返回true */ public final boolean isWindows95() { return IS_OS_WINDOWS_95; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows 98,则返回true + * @return 如果当前OS类型为Windows 98,则返回true */ public final boolean isWindows98() { return IS_OS_WINDOWS_98; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows ME,则返回true + * @return 如果当前OS类型为Windows ME,则返回true */ public final boolean isWindowsME() { return IS_OS_WINDOWS_ME; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows NT,则返回true + * @return 如果当前OS类型为Windows NT,则返回true */ public final boolean isWindowsNT() { return IS_OS_WINDOWS_NT; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows XP,则返回true + * @return 如果当前OS类型为Windows XP,则返回true */ public final boolean isWindowsXP() { return IS_OS_WINDOWS_XP; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows 7,则返回true + * @return 如果当前OS类型为Windows 7,则返回true */ public final boolean isWindows7() { return IS_OS_WINDOWS_7; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows 8,则返回true + * @return 如果当前OS类型为Windows 8,则返回true */ public final boolean isWindoows8() { return IS_OS_WINDOWS_8; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows 8.1,则返回true + * @return 如果当前OS类型为Windows 8.1,则返回true */ public final boolean isWindows8_1() { return IS_OS_WINDOWS_8_1; } /** - * 判断当前OS的类型。 + * 判断当前OS的类型 * *

    - * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false + * 如果不能取得系统属性os.name(因为Java安全限制),则总是返回false *

    * - * @return 如果当前OS类型为Windows 10,则返回true + * @return 如果当前OS类型为Windows 10,则返回true */ public final boolean isWindows10() { return IS_OS_WINDOWS_10; } /** - * 匹配OS名称。 + * 匹配OS名称 * * @param osNamePrefix OS名称前缀 - * @return 如果匹配,则返回true + * @return 如果匹配, 则返回true */ private final boolean getOSMatches(String osNamePrefix) { if (OS_NAME == null) { @@ -381,11 +381,11 @@ private final boolean getOSMatches(String osNamePrefix) { } /** - * 匹配OS名称。 + * 匹配OS名称 * * @param osNamePrefix OS名称前缀 * @param osVersionPrefix OS版本前缀 - * @return 如果匹配,则返回true + * @return 如果匹配, 则返回true */ private final boolean getOSMatches(String osNamePrefix, String osVersionPrefix) { if ((OS_NAME == null) || (OS_VERSION == null)) { @@ -396,13 +396,13 @@ private final boolean getOSMatches(String osNamePrefix, String osVersionPrefix) } /** - * 取得OS的文件路径的分隔符(取自系统属性:file.separator)。 + * 取得OS的文件路径的分隔符(取自系统属性:file.separator) * *

    - * 例如:Unix为"/",Windows为"\\"。 + * 例如:Unix为"/",Windows为"\\" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getFileSeparator() { @@ -410,13 +410,13 @@ public final String getFileSeparator() { } /** - * 取得OS的文本文件换行符(取自系统属性:line.separator)。 + * 取得OS的文本文件换行符(取自系统属性:line.separator) * *

    - * 例如:Unix为"\n",Windows为"\r\n"。 + * 例如:Unix为"\n",Windows为"\r\n" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getLineSeparator() { @@ -424,13 +424,13 @@ public final String getLineSeparator() { } /** - * 取得OS的搜索路径分隔符(取自系统属性:path.separator)。 + * 取得OS的搜索路径分隔符(取自系统属性:path.separator) * *

    - * 例如:Unix为":",Windows为";"。 + * 例如:Unix为":",Windows为";" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getPathSeparator() { @@ -438,7 +438,7 @@ public final String getPathSeparator() { } /** - * 将OS的信息转换成字符串。 + * 将OS的信息转换成字符串 * * @return OS的字符串表示 */ diff --git a/bus-health/src/main/java/org/aoju/bus/health/RuntimeInfo.java b/bus-health/src/main/java/org/aoju/bus/health/RuntimeInfo.java index ed57e36d3c..4f900aa276 100755 --- a/bus-health/src/main/java/org/aoju/bus/health/RuntimeInfo.java +++ b/bus-health/src/main/java/org/aoju/bus/health/RuntimeInfo.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.utils.FileUtils; /** - * 运行时信息,包括内存总大小、已用大小、可用大小等 + * 运行时信息,包括内存总大小、已用大小、可用大小等 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-health/src/main/java/org/aoju/bus/health/UserInfo.java b/bus-health/src/main/java/org/aoju/bus/health/UserInfo.java index 67ecb5b303..224887e510 100755 --- a/bus-health/src/main/java/org/aoju/bus/health/UserInfo.java +++ b/bus-health/src/main/java/org/aoju/bus/health/UserInfo.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.consts.System; /** - * 代表当前用户的信息。 + * 代表当前用户的信息 * * @author Kimi Liu * @version 5.2.2 @@ -43,13 +43,13 @@ public class UserInfo { private final String JAVA_IO_TMPDIR = HealthUtils.get(System.IO_TMPDIR, false); /** - * 取得当前登录用户的名字(取自系统属性:user.name)。 + * 取得当前登录用户的名字(取自系统属性:user.name) * *

    * 例如:"admin" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ @@ -58,13 +58,13 @@ public final String getName() { } /** - * 取得当前登录用户的home目录(取自系统属性:user.home)。 + * 取得当前登录用户的home目录(取自系统属性:user.home) * *

    * 例如:"/home/admin" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getHomeDir() { @@ -72,13 +72,13 @@ public final String getHomeDir() { } /** - * 取得当前目录(取自系统属性:user.dir)。 + * 取得当前目录(取自系统属性:user.dir) * *

    * 例如:"/home/admin/working" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null * @since Java 1.1 */ public final String getCurrentDir() { @@ -86,46 +86,46 @@ public final String getCurrentDir() { } /** - * 取得临时目录(取自系统属性:java.io.tmpdir)。 + * 取得临时目录(取自系统属性:java.io.tmpdir) * *

    * 例如:"/tmp" *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getTempDir() { return JAVA_IO_TMPDIR; } /** - * 取得当前登录用户的语言设置(取自系统属性:user.language)。 + * 取得当前登录用户的语言设置(取自系统属性:user.language) * *

    * 例如:"zh""en"等 *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getLanguage() { return USER_LANGUAGE; } /** - * 取得当前登录用户的国家或区域设置(取自系统属性:JDK1.4 user.country或JDK1.2 user.region)。 + * 取得当前登录用户的国家或区域设置(取自系统属性:JDK1.4 user.country或JDK1.2 user.region) * *

    * 例如:"CN""US"等 *

    * - * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null。 + * @return 属性值, 如果不能取得(因为Java安全限制)或值不存在,则返回null */ public final String getCountry() { return USER_COUNTRY; } /** - * 将当前用户的信息转换成字符串。 + * 将当前用户的信息转换成字符串 * * @return 用户信息的字符串表示 */ diff --git a/bus-http/src/main/java/org/aoju/bus/http/Address.java b/bus-http/src/main/java/org/aoju/bus/http/Address.java index 27b2a9c7a7..4da44dc4a1 100755 --- a/bus-http/src/main/java/org/aoju/bus/http/Address.java +++ b/bus-http/src/main/java/org/aoju/bus/http/Address.java @@ -36,10 +36,10 @@ import java.util.List; /** - * 服务器的连接的规范。 - * 对于简单的连接,这是服务器的主机名和端口。 - * 如果请求显式代理,则还包括该代理信息。 - * 对于安全连接,该地址还包括SSL套接字工厂、主机名验证器和证书 + * 服务器的连接的规范 + * 对于简单的连接,这是服务器的主机名和端口 + * 如果请求显式代理,则还包括该代理信息 + * 对于安全连接,该地址还包括SSL套接字工厂、主机名验证器和证书 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-http/src/main/java/org/aoju/bus/http/HttpClient.java b/bus-http/src/main/java/org/aoju/bus/http/HttpClient.java index 383f0801ef..90690d571c 100755 --- a/bus-http/src/main/java/org/aoju/bus/http/HttpClient.java +++ b/bus-http/src/main/java/org/aoju/bus/http/HttpClient.java @@ -161,7 +161,7 @@ public HttpClient(Dns dns, * @param maxRequestsPerHost 主机最大请求 * @param maxIdleConnections 最大连接 * @param keepAliveDuration 链接时长 - * @param sslSocketFactory 抽象类,扩展自SocketFactory, SSLSocket的工厂 + * @param sslSocketFactory 抽象类,扩展自SocketFactory, SSLSocket的工厂 * @param x509TrustManager 证书信任管理器 * @param hostnameVerifier 主机名校验信息 */ @@ -243,7 +243,7 @@ public static String get(final String url, final String charset) { } /** - * 异步get请求,回调 + * 异步get请求,回调 * * @param url URL地址 * @param isAsync 是否异步 @@ -295,7 +295,7 @@ public static String get(final String url, final Map queryMap, M } /** - * 异步处理的GET请求,自定义请求类型 + * 异步处理的GET请求,自定义请求类型 * * @param url URL地址 String * @param callback 回调信息 callback @@ -307,7 +307,7 @@ public static void get(String url, Callback callback) { } /** - * 异步处理的POST请求,自定义请求类型 + * 异步处理的POST请求,自定义请求类型 * * @param url URL地址 String * @param queryMap 查询参数 Map diff --git a/bus-http/src/main/java/org/aoju/bus/http/Proxy.java b/bus-http/src/main/java/org/aoju/bus/http/Proxy.java index aaa821b0a6..70fe27dba3 100755 --- a/bus-http/src/main/java/org/aoju/bus/http/Proxy.java +++ b/bus-http/src/main/java/org/aoju/bus/http/Proxy.java @@ -42,10 +42,10 @@ public class Proxy { public final java.net.Proxy.Type type; /** - * @param hostAddress 服务器域名或IP,比如aoju.org, 192.168.1.1 + * @param hostAddress 服务器域名或IP,比如aoju.org, 192.168.1.1 * @param port 端口 - * @param user 用户名,无则填null - * @param password 用户密码,无则填null + * @param user 用户名,无则填null + * @param password 用户密码,无则填null * @param type 代理类型 */ public Proxy(String hostAddress, int port, String user, String password, java.net.Proxy.Type type) { diff --git a/bus-http/src/main/java/org/aoju/bus/http/internal/http/second/Hpack.java b/bus-http/src/main/java/org/aoju/bus/http/internal/http/second/Hpack.java index 8f0af2202c..ca60de24ed 100755 --- a/bus-http/src/main/java/org/aoju/bus/http/internal/http/second/Hpack.java +++ b/bus-http/src/main/java/org/aoju/bus/http/internal/http/second/Hpack.java @@ -553,7 +553,6 @@ void writeHeaders(List
    headerBlock) throws IOException { } } - // http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-12#section-4.1.1 void writeInt(int value, int prefixMask, int bits) { // Write the raw value for a single byte value. if (value < prefixMask) { diff --git a/bus-limiter/src/main/java/org/aoju/bus/limiter/Handler.java b/bus-limiter/src/main/java/org/aoju/bus/limiter/Handler.java index b392b3f04d..5fca92265a 100755 --- a/bus-limiter/src/main/java/org/aoju/bus/limiter/Handler.java +++ b/bus-limiter/src/main/java/org/aoju/bus/limiter/Handler.java @@ -28,9 +28,9 @@ /** * 当limiter由于其他原因不能正常工作(如Redis宕机) - * 该接口将会被调用,如果你不希望这些异常影响接口提供服务 - * return true,这样将会跳过该limiter,实际上,更好的 - * limiter 降级策略应该由limiter本身实现,这里只是一个简单的替代方案 + * 该接口将会被调用,如果你不希望这些异常影响接口提供服务 + * return true,这样将会跳过该limiter,实际上,更好的 + * limiter 降级策略应该由limiter本身实现,这里只是一个简单的替代方案 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-limiter/src/main/java/org/aoju/bus/limiter/Limiter.java b/bus-limiter/src/main/java/org/aoju/bus/limiter/Limiter.java index 50ad41b488..89dd89c306 100755 --- a/bus-limiter/src/main/java/org/aoju/bus/limiter/Limiter.java +++ b/bus-limiter/src/main/java/org/aoju/bus/limiter/Limiter.java @@ -43,8 +43,8 @@ public interface Limiter { String getLimiterName(); /** - * 对一个键值进行限制操作,并使用 args 参数 - * 例如实现一个速率限制器,则 args 通常为速率参数 + * 对一个键值进行限制操作,并使用 args 参数 + * 例如实现一个速率限制器,则 args 通常为速率参数 * * @param key 键 * @param args 参数 @@ -53,7 +53,7 @@ public interface Limiter { boolean limit(Object key, Map args); /** - * 对于一个键值释放限制,例如locker 对应于locker 的unlock 操作 + * 对于一个键值释放限制,例如locker 对应于locker 的unlock 操作 * 某些种类的没有对应的释放操作 例如速率限制器 这是该方法应该是空实现 * * @param key 键 diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/GlobalFactory.java b/bus-logger/src/main/java/org/aoju/bus/logger/GlobalFactory.java index 276fb3c90c..160cf162d6 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/GlobalFactory.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/GlobalFactory.java @@ -32,7 +32,7 @@ /** * 全局日志工厂类 - * 用于减少日志工厂创建,减少日志库探测 + * 用于减少日志工厂创建,减少日志库探测 * * @author Kimi Liu * @version 5.2.2 @@ -44,7 +44,7 @@ public class GlobalFactory { private static volatile LogFactory currentLogFactory; /** - * 获取单例日志工厂类,如果不存在创建之 + * 获取单例日志工厂类,如果不存在创建之 * * @return 当前使用的日志工厂 */ diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/Log.java b/bus-logger/src/main/java/org/aoju/bus/logger/Log.java index dd2b14a1ab..d23a3afc18 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/Log.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/Log.java @@ -69,7 +69,7 @@ public interface Log extends TraceLog, DebugLog, InfoLog, WarnLog, ErrorLog { /** * 打印 ERROR 等级的日志 * - * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 + * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 * @param level 级别 * @param t 错误对象 * @param format 消息模板 diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/LogFactory.java b/bus-logger/src/main/java/org/aoju/bus/logger/LogFactory.java index 1e9cea9e38..992998c75e 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/LogFactory.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/LogFactory.java @@ -49,7 +49,7 @@ public abstract class LogFactory { /** - * 日志框架名,用于打印当前所用日志框架 + * 日志框架名,用于打印当前所用日志框架 */ protected String name; /** @@ -70,7 +70,7 @@ public LogFactory(String name) { /** * 决定日志实现 *

    - * 依次按照顺序检查日志库的jar是否被引入,如果未引入任何日志库,则检查ClassPath下的logging.properties,存在则使用JdkLogFactory,否则使用ConsoleLogFactory + * 依次按照顺序检查日志库的jar是否被引入,如果未引入任何日志库,则检查ClassPath下的logging.properties,存在则使用JdkLogFactory,否则使用ConsoleLogFactory * * @return 日志实现类 * @see Slf4jLogFactory @@ -91,7 +91,7 @@ public static LogFactory create() { /** * 决定日志实现 *

    - * 依次按照顺序检查日志库的jar是否被引入,如果未引入任何日志库,则检查ClassPath下的logging.properties,存在则使用JdkLogFactory,否则使用ConsoleLogFactory + * 依次按照顺序检查日志库的jar是否被引入,如果未引入任何日志库,则检查ClassPath下的logging.properties,存在则使用JdkLogFactory,否则使用ConsoleLogFactory * * @return 日志实现类 * @see Slf4jLogFactory @@ -210,7 +210,7 @@ public static Log get() { } /** - * 获取日志框架名,用于打印当前所用日志框架 + * 获取日志框架名,用于打印当前所用日志框架 * * @return 日志框架名 */ @@ -266,8 +266,8 @@ public Log getLog(Class clazz) { /** * 检查日志实现是否存在 - * 此方法仅用于检查所提供的日志相关类是否存在,当传入的日志类类不存在时抛出ClassNotFoundException - * 此方法的作用是在detectLogFactory方法自动检测所用日志时,如果实现类不存在,调用此方法会自动抛出异常,从而切换到下一种日志的检测。 + * 此方法仅用于检查所提供的日志相关类是否存在,当传入的日志类类不存在时抛出ClassNotFoundException + * 此方法的作用是在detectLogFactory方法自动检测所用日志时,如果实现类不存在,调用此方法会自动抛出异常,从而切换到下一种日志的检测 * * @param logClassName 日志实现相关类 */ diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/Logger.java b/bus-logger/src/main/java/org/aoju/bus/logger/Logger.java index 777fb2c0d7..fe3a37384e 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/Logger.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/Logger.java @@ -28,7 +28,7 @@ import org.aoju.bus.logger.level.Level; /** - * 静态日志类,用于在不引入日志对象的情况下打印日志 + * 静态日志类,用于在不引入日志对象的情况下打印日志 * * @author Kimi Liu * @version 5.2.2 @@ -43,10 +43,10 @@ private Logger() { } /** - * Trace等级日志,小于debug - * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! + * Trace等级日志,小于debug + * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void trace(String format, Object... arguments) { @@ -54,10 +54,10 @@ public static void trace(String format, Object... arguments) { } /** - * Trace等级日志,小于Debug + * Trace等级日志,小于Debug * * @param log 日志对象 - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void trace(Log log, String format, Object... arguments) { @@ -65,10 +65,10 @@ public static void trace(Log log, String format, Object... arguments) { } /** - * Debug等级日志,小于Info - * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! + * Debug等级日志,小于Info + * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void debug(String format, Object... arguments) { @@ -76,10 +76,10 @@ public static void debug(String format, Object... arguments) { } /** - * Debug等级日志,小于Info + * Debug等级日志,小于Info * * @param log 日志对象 - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void debug(Log log, String format, Object... arguments) { @@ -87,10 +87,10 @@ public static void debug(Log log, String format, Object... arguments) { } /** - * Info等级日志,小于Warn - * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! + * Info等级日志,小于Warn + * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void info(String format, Object... arguments) { @@ -98,10 +98,10 @@ public static void info(String format, Object... arguments) { } /** - * Info等级日志,小于Warn + * Info等级日志,小于Warn * * @param log 日志对象 - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void info(Log log, String format, Object... arguments) { @@ -109,10 +109,10 @@ public static void info(Log log, String format, Object... arguments) { } /** - * Warn等级日志,小于Error - * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! + * Warn等级日志,小于Error + * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void warn(String format, Object... arguments) { @@ -120,11 +120,11 @@ public static void warn(String format, Object... arguments) { } /** - * Warn等级日志,小于Error - * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! + * Warn等级日志,小于Error + * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param e 需在日志中堆栈打印的异常 - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void warn(Throwable e, String format, Object... arguments) { @@ -132,10 +132,10 @@ public static void warn(Throwable e, String format, Object... arguments) { } /** - * Warn等级日志,小于Error + * Warn等级日志,小于Error * * @param log 日志对象 - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void warn(Log log, String format, Object... arguments) { @@ -143,11 +143,11 @@ public static void warn(Log log, String format, Object... arguments) { } /** - * Warn等级日志,小于Error + * Warn等级日志,小于Error * * @param log 日志对象 * @param e 需在日志中堆栈打印的异常 - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void warn(Log log, Throwable e, String format, Object... arguments) { @@ -156,7 +156,7 @@ public static void warn(Log log, Throwable e, String format, Object... arguments /** * Error等级日志 - * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! + * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param e 需在日志中堆栈打印的异常 */ @@ -166,9 +166,9 @@ public static void error(Throwable e) { /** * Error等级日志 - * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! + * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void error(String format, Object... arguments) { @@ -177,10 +177,10 @@ public static void error(String format, Object... arguments) { /** * Error等级日志 - * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! + * 由于动态获取Log,效率较低,建议在非频繁调用的情况下使用!! * * @param e 需在日志中堆栈打印的异常 - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void error(Throwable e, String format, Object... arguments) { @@ -201,7 +201,7 @@ public static void error(Log log, Throwable e) { * Error等级日志 * * @param log 日志对象 - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void error(Log log, String format, Object... arguments) { @@ -213,7 +213,7 @@ public static void error(Log log, String format, Object... arguments) { * * @param log 日志对象 * @param e 需在日志中堆栈打印的异常 - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void error(Log log, Throwable e, String format, Object... arguments) { @@ -225,7 +225,7 @@ public static void error(Log log, Throwable e, String format, Object... argument * * @param level 日志级别 * @param t 需在日志中堆栈打印的异常 - * @param format 格式文本,{} 代表变量 + * @param format 格式文本,{} 代表变量 * @param arguments 变量对应的参数 */ public static void log(Level level, Throwable t, String format, Object... arguments) { @@ -253,7 +253,7 @@ public static Log get(String name) { } /** - * @return 获得日志,自动判定日志发出者 + * @return 获得日志, 自动判定日志发出者 */ public static Log get() { return LogFactory.get(CallerUtils.getCallers()); diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/dialect/log4j2/Log4j2Log.java b/bus-logger/src/main/java/org/aoju/bus/logger/dialect/log4j2/Log4j2Log.java index 80da6eb349..c9e9c77855 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/dialect/log4j2/Log4j2Log.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/dialect/log4j2/Log4j2Log.java @@ -140,10 +140,10 @@ public void log(String fqcn, org.aoju.bus.logger.level.Level level, Throwable t, /** * 打印日志 - * 此方法用于兼容底层日志实现,通过传入当前包装类名,以解决打印日志中行号错误问题 + * 此方法用于兼容底层日志实现,通过传入当前包装类名,以解决打印日志中行号错误问题 * - * @param fqcn 完全限定类名(Fully Qualified Class Name),用于纠正定位错误行号 - * @param level 日志级别,使用org.apache.logging.log4j.Level中的常量 + * @param fqcn 完全限定类名(Fully Qualified Class Name),用于纠正定位错误行号 + * @param level 日志级别,使用org.apache.logging.log4j.Level中的常量 * @param t 异常 * @param msgTemplate 消息模板 * @param arguments 参数 diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/dialect/slf4j/Slf4jLog.java b/bus-logger/src/main/java/org/aoju/bus/logger/dialect/slf4j/Slf4jLog.java index 7d3127cfcd..be1b2f4d3e 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/dialect/slf4j/Slf4jLog.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/dialect/slf4j/Slf4jLog.java @@ -43,7 +43,7 @@ public class Slf4jLog extends AbstractAware { private final transient Logger logger; /** - * 是否为 LocationAwareLogger ,用于判断是否可以传递FQCN + * 是否为 LocationAwareLogger ,用于判断是否可以传递FQCN */ private final boolean isLocationAwareLogger; @@ -63,7 +63,7 @@ public Slf4jLog(String name) { /** * 获取Slf4j Logger对象 * - * @param clazz 打印日志所在类,当为{@code null}时使用“null”表示 + * @param clazz 打印日志所在类,当为{@code null}时使用“null”表示 * @return {@link Logger} */ private static Logger getSlf4jLogger(Class clazz) { @@ -180,15 +180,15 @@ public void log(String fqcn, Level level, Throwable t, String format, Object... /** * 打印日志 - * 此方法用于兼容底层日志实现,通过传入当前包装类名,以解决打印日志中行号错误问题 + * 此方法用于兼容底层日志实现,通过传入当前包装类名,以解决打印日志中行号错误问题 * * @param logger {@link LocationAwareLogger} 实现 - * @param fqcn 完全限定类名(Fully Qualified Class Name),用于纠正定位错误行号 - * @param level_int 日志级别,使用LocationAwareLogger中的常量 + * @param fqcn 完全限定类名(Fully Qualified Class Name),用于纠正定位错误行号 + * @param level_int 日志级别,使用LocationAwareLogger中的常量 * @param t 异常 * @param msgTemplate 消息模板 * @param arguments 参数 - * @return 是否支持 LocationAwareLogger对象,如果不支持需要日志方法调用被包装类的相应方法 + * @return 是否支持 LocationAwareLogger对象,如果不支持需要日志方法调用被包装类的相应方法 */ private void locationAwareLog(LocationAwareLogger logger, String fqcn, int level_int, Throwable t, String msgTemplate, Object[] arguments) { logger.log(null, fqcn, level_int, StringUtils.format(msgTemplate, arguments), null, t); diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/dialect/tinylog/TinyLog.java b/bus-logger/src/main/java/org/aoju/bus/logger/dialect/tinylog/TinyLog.java index 4ad6c38fd4..0f574f83af 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/dialect/tinylog/TinyLog.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/dialect/tinylog/TinyLog.java @@ -41,7 +41,7 @@ public class TinyLog extends AbstractAware { /** - * 堆栈增加层数,因为封装因此多了两层,此值用于正确获取当前类名 + * 堆栈增加层数,因为封装因此多了两层,此值用于正确获取当前类名 */ private static final int DEPTH = 4; @@ -58,7 +58,7 @@ public TinyLog(String name) { } /** - * 如果最后一个参数为异常参数,则获取之,否则返回null + * 如果最后一个参数为异常参数,则获取之,否则返回null * * @param arguments 参数 * @return 最后一个异常参数 @@ -139,9 +139,9 @@ public boolean isEnabled(org.aoju.bus.logger.level.Level level) { /** * 在对应日志级别打开情况下打印日志 * - * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 + * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 * @param level 日志级别 - * @param t 异常,null则检查最后一个参数是否为Throwable类型,是则取之,否则不打印堆栈 + * @param t 异常,null则检查最后一个参数是否为Throwable类型,是则取之,否则不打印堆栈 * @param format 日志消息模板 * @param arguments 日志消息参数 */ diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/level/DebugLog.java b/bus-logger/src/main/java/org/aoju/bus/logger/level/DebugLog.java index f9f86ae06c..e9503906a1 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/level/DebugLog.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/level/DebugLog.java @@ -64,7 +64,7 @@ public interface DebugLog { /** * 打印 DEBUG 等级的日志 * - * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 + * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 * @param t 错误对象 * @param format 消息模板 * @param arguments 参数 diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/level/ErrorLog.java b/bus-logger/src/main/java/org/aoju/bus/logger/level/ErrorLog.java index 1f5cd65821..c35cb84b2f 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/level/ErrorLog.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/level/ErrorLog.java @@ -64,7 +64,7 @@ public interface ErrorLog { /** * 打印 ERROR 等级的日志 * - * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 + * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 * @param t 错误对象 * @param format 消息模板 * @param arguments 参数 diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/level/InfoLog.java b/bus-logger/src/main/java/org/aoju/bus/logger/level/InfoLog.java index 0559c68f8d..f91ade8e7e 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/level/InfoLog.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/level/InfoLog.java @@ -64,7 +64,7 @@ public interface InfoLog { /** * 打印 INFO 等级的日志 * - * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 + * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 * @param t 错误对象 * @param format 消息模板 * @param arguments 参数 diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/level/TraceLog.java b/bus-logger/src/main/java/org/aoju/bus/logger/level/TraceLog.java index 97bf820a00..1d5ddee979 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/level/TraceLog.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/level/TraceLog.java @@ -64,7 +64,7 @@ public interface TraceLog { /** * 打印 TRACE 等级的日志 * - * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 + * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 * @param t 错误对象 * @param format 消息模板 * @param arguments 参数 diff --git a/bus-logger/src/main/java/org/aoju/bus/logger/level/WarnLog.java b/bus-logger/src/main/java/org/aoju/bus/logger/level/WarnLog.java index 46fb4086bc..a0d94699b3 100755 --- a/bus-logger/src/main/java/org/aoju/bus/logger/level/WarnLog.java +++ b/bus-logger/src/main/java/org/aoju/bus/logger/level/WarnLog.java @@ -64,7 +64,7 @@ public interface WarnLog { /** * 打印 WARN 等级的日志 * - * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 + * @param fqcn 完全限定类名(Fully Qualified Class Name),用于定位日志位置 * @param t 错误对象 * @param format 消息模板 * @param arguments 参数 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/annotation/NameStyle.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/annotation/NameStyle.java index aa0d7ddfbf..111d00d8ee 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/annotation/NameStyle.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/annotation/NameStyle.java @@ -31,7 +31,7 @@ import java.lang.annotation.Target; /** - * 名字转换样式,注解的优先级高于全局配置 + * 名字转换样式,注解的优先级高于全局配置 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/annotation/Version.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/annotation/Version.java index 50faa7ffd4..76064d9fc2 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/annotation/Version.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/annotation/Version.java @@ -43,7 +43,7 @@ public @interface Version { /** - * 下一个版本号的算法,默认算法支持 Integer 和 Long,在原基础上 +1 + * 下一个版本号的算法,默认算法支持 Integer 和 Long,在原基础上 +1 * * @return 版本信息 */ diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/EntityBuilder.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/EntityBuilder.java index 95b5c2baed..c099fdc74d 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/EntityBuilder.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/EntityBuilder.java @@ -132,7 +132,7 @@ public static String getSelectColumns(Class entityClass) { for (EntityColumn entityColumn : columnList) { selectBuilder.append(entityColumn.getColumn()); if (!skipAlias && !entityColumn.getColumn().equalsIgnoreCase(entityColumn.getProperty())) { - //不等的时候分几种情况,例如`DESC` + //不等的时候分几种情况,例如`DESC` if (entityColumn.getColumn().substring(1, entityColumn.getColumn().length() - 1).equalsIgnoreCase(entityColumn.getProperty())) { selectBuilder.append(","); } else { @@ -157,7 +157,7 @@ public static synchronized void initEntityNameMap(Class entityClass, Config c return; } Style style = config.getStyle(); - //style,该注解优先于全局配置 + //style,该注解优先于全局配置 if (entityClass.isAnnotationPresent(NameStyle.class)) { NameStyle nameStyle = entityClass.getAnnotation(NameStyle.class); style = nameStyle.value(); @@ -187,8 +187,8 @@ public static synchronized void initEntityNameMap(Class entityClass, Config c fields = FieldSourceBuilder.getFields(entityClass); } for (EntityField field : fields) { - //如果启用了简单类型,就做简单类型校验,如果不是简单类型,直接跳过 - //5.2.2 如果启用了枚举作为简单类型,就不会自动忽略枚举类型 + //如果启用了简单类型,就做简单类型校验,如果不是简单类型,直接跳过 + //5.2.2 如果启用了枚举作为简单类型,就不会自动忽略枚举类型 if (config.isUseSimpleType() && !(SimpleType.isSimpleType(field.getJavaType()) || @@ -219,7 +219,7 @@ private static void processField(EntityTable entityTable, Style style, EntityFie } //Id EntityColumn entityColumn = new EntityColumn(entityTable); - //记录 field 信息,方便后续扩展使用 + //记录 field 信息,方便后续扩展使用 entityColumn.setEntityField(field); if (field.isAnnotationPresent(Id.class)) { entityColumn.setId(true); @@ -266,7 +266,7 @@ private static void processField(EntityTable entityTable, Style style, EntityFie entityColumn.setOrderBy(orderBy.value()); } } - //主键策略 - Oracle序列,MySql自动增长,UUID + //主键策略 - Oracle序列,MySql自动增长,UUID if (field.isAnnotationPresent(SequenceGenerator.class)) { SequenceGenerator sequenceGenerator = field.getAnnotation(SequenceGenerator.class); if (sequenceGenerator.sequenceName().equals("")) { diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/FieldSourceBuilder.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/FieldSourceBuilder.java index 7b9a8daddc..7a6ee069b2 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/FieldSourceBuilder.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/FieldSourceBuilder.java @@ -67,7 +67,7 @@ public static List getFields(Class entityClass) { } /** - * 获取全部的属性,通过方法名获取 + * 获取全部的属性,通过方法名获取 * * @param entityClass 对象 * @return 结果 @@ -77,7 +77,7 @@ public static List getProperties(Class entityClass) { } /** - * 获取全部的属性,包含字段和方法 + * 获取全部的属性,包含字段和方法 * * @param entityClass 对象 * @return 结果 @@ -85,7 +85,7 @@ public static List getProperties(Class entityClass) { public static List getAll(Class entityClass) { List fields = fieldHelper.getFields(entityClass); List properties = fieldHelper.getProperties(entityClass); - //拼到一起,名字相同的合并 + //拼到一起,名字相同的合并 List all = new ArrayList(); Set usedSet = new HashSet(); for (EntityField field : fields) { @@ -137,7 +137,7 @@ interface IFieldHelper { List getFields(Class entityClass); /** - * 获取全部的属性,通过方法名获取 + * 获取全部的属性,通过方法名获取 * * @param entityClass 对象 * @return 结果 @@ -173,7 +173,7 @@ public List getFields(Class entityClass) { } /** - * 获取全部的Field,仅仅通过Field获取 + * 获取全部的Field,仅仅通过Field获取 * * @param entityClass 对象 * @param fieldList @@ -194,7 +194,7 @@ private List _getFields(Class entityClass, List fie int index = 0; for (int i = 0; i < fields.length; i++) { Field field = fields[i]; - //排除静态字段,解决bug#2 + //排除静态字段,解决bug#2 if (!Modifier.isStatic(field.getModifiers()) && !Modifier.isTransient(field.getModifiers())) { if (level.intValue() != 0) { //将父类的字段放在前面 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/MapperBuilder.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/MapperBuilder.java index 431fd74b23..ace8afc7a9 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/MapperBuilder.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/MapperBuilder.java @@ -40,7 +40,7 @@ import java.util.concurrent.ConcurrentHashMap; /** - * 处理主要逻辑,最关键的一个类 + * 处理主要逻辑,最关键的一个类 * * @author Kimi Liu * @version 5.2.2 @@ -167,7 +167,7 @@ public void registerMapper(String mapperClass) { try { registerMapper(Class.forName(mapperClass)); } catch (ClassNotFoundException e) { - throw new MapperException("注册通用Mapper[" + mapperClass + "]失败,找不到该通用Mapper!"); + throw new MapperException("注册通用Mapper[" + mapperClass + "]失败,找不到该通用Mapper!"); } } @@ -208,7 +208,7 @@ public boolean isExtendCommonMapper(Class mapperInterface) { } /** - * 如果当前注册的接口为空,自动注册默认接口 + * 如果当前注册的接口为空,自动注册默认接口 */ public void ifEmptyRegisterDefaultInterface() { if (registerClass.size() == 0) { @@ -217,7 +217,7 @@ public void ifEmptyRegisterDefaultInterface() { } /** - * 配置完成后,执行下面的操作 + * 配置完成后,执行下面的操作 * 处理configuration中全部的MappedStatement * * @param configuration 配置 @@ -297,7 +297,7 @@ public void setProperties(Properties properties) { /** * 重新设置SqlSource - * 执行该方法前必须使用isMapperMethod判断,否则msIdCache会空 + * 执行该方法前必须使用isMapperMethod判断,否则msIdCache会空 * * @param ms MappedStatement */ diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/MapperTemplate.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/MapperTemplate.java index 0c2e751869..5034c430ef 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/MapperTemplate.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/MapperTemplate.java @@ -51,7 +51,7 @@ import static org.aoju.bus.mapper.reflection.Reflector.getMethodName; /** - * 通用Mapper模板类,扩展通用Mapper时需要继承该类 + * 通用Mapper模板类,扩展通用Mapper时需要继承该类 * * @author Kimi Liu * @version 5.2.2 @@ -116,7 +116,7 @@ public boolean supportMethod(String msId) { } /** - * 设置返回值类型 - 为了让typeHandler在select时有效,改为设置resultMap + * 设置返回值类型 - 为了让typeHandler在select时有效,改为设置resultMap * * @param ms MappedStatement * @param entityClass 对象 @@ -169,7 +169,7 @@ public Class getEntityClass(MappedStatement ms) { ParameterizedType t = (ParameterizedType) type; if (t.getRawType() == this.mapperClass || this.mapperClass.isAssignableFrom((Class) t.getRawType())) { Class returnType = (Class) t.getActualTypeArguments()[0]; - //获取该类型后,第一次对该类型进行初始化 + //获取该类型后,第一次对该类型进行初始化 EntityBuilder.initEntityNameMap(returnType, mapperBuilder.getConfig()); entityClassMap.put(msId, returnType); return returnType; @@ -240,17 +240,17 @@ public void setSqlSource(MappedStatement ms) { } Method method = methodMap.get(getMethodName(ms)); try { - //第一种,直接操作ms,不需要返回值 + //第一种,直接操作ms,不需要返回值 if (method.getReturnType() == Void.TYPE) { method.invoke(this, ms); } - //第二种,返回SqlNode + //第二种,返回SqlNode else if (SqlNode.class.isAssignableFrom(method.getReturnType())) { SqlNode sqlNode = (SqlNode) method.invoke(this, ms); DynamicSqlSource dynamicSqlSource = new DynamicSqlSource(ms.getConfiguration(), sqlNode); setSqlSource(ms, dynamicSqlSource); } - //第三种,返回xml形式的sql字符串 + //第三种,返回xml形式的sql字符串 else if (String.class.equals(method.getReturnType())) { String xmlSql = (String) method.invoke(this, ms); SqlSource sqlSource = createSqlSource(ms, xmlSql); diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/OGNL.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/OGNL.java index 15089e785a..0734d5f095 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/OGNL.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/OGNL.java @@ -116,7 +116,7 @@ public static boolean hasNoSelectColumns(Object parameter) { * 判断参数是否支持动态表名 * * @param parameter Object - * @return true支持,false不支持 + * @return true支持, false不支持 */ public static boolean isDynamicParameter(Object parameter) { if (parameter != null && parameter instanceof EntityTableName) { @@ -129,7 +129,7 @@ public static boolean isDynamicParameter(Object parameter) { * 判断参数是否b支持动态表名 * * @param parameter Object - * @return true不支持,false支持 + * @return true不支持, false支持 */ public static boolean isNotDynamicParameter(Object parameter) { return !isDynamicParameter(parameter); diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/SqlSourceBuilder.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/SqlSourceBuilder.java index 846a614d2a..87a8b790be 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/SqlSourceBuilder.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/builder/SqlSourceBuilder.java @@ -66,7 +66,7 @@ public static String getDynamicTableName(Class entityClass, String tableName) } /** - * 获取表名 - 支持动态表名,该方法用于多个入参时,通过parameterName指定入参中实体类的@Param的注解值 + * 获取表名 - 支持动态表名,该方法用于多个入参时,通过parameterName指定入参中实体类的@Param的注解值 * * @param entityClass 对象 * @param tableName 表 @@ -232,7 +232,7 @@ public static String getIfIsNull(String entityName, EntityColumn column, String } /** - * 获取所有查询列,如id,name,criteria... + * 获取所有查询列,如id,name,criteria... * * @param entityClass 对象 * @return the string @@ -381,7 +381,7 @@ public static String insertColumns(Class entityClass, boolean skipId, boolean sql.append(""); //获取全部列 Set columnList = EntityBuilder.getColumns(entityClass); - //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值 + //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值 for (EntityColumn column : columnList) { if (!column.isInsertable()) { continue; @@ -413,7 +413,7 @@ public static String insertValuesColumns(Class entityClass, boolean skipId, b sql.append(""); //获取全部列 Set columnList = EntityBuilder.getColumns(entityClass); - //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值 + //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值 for (EntityColumn column : columnList) { if (!column.isInsertable()) { continue; @@ -447,11 +447,11 @@ public static String updateSetColumns(Class entityClass, String entityName, b Set columnList = EntityBuilder.getColumns(entityClass); //对乐观锁的支持 EntityColumn versionColumn = null; - //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值 + //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值 for (EntityColumn column : columnList) { if (column.getEntityField().isAnnotationPresent(Version.class)) { if (versionColumn != null) { - throw new VersionException(entityClass.getCanonicalName() + " 中包含多个带有 @Version 注解的字段,一个类中只能存在一个带有 @Version 注解的字段!"); + throw new VersionException(entityClass.getCanonicalName() + " 中包含多个带有 @Version 注解的字段,一个类中只能存在一个带有 @Version 注解的字段!"); } versionColumn = column; } @@ -496,7 +496,7 @@ public static String wherePKColumns(Class entityClass, boolean useVersion) { sql.append(""); //获取全部列 Set columnList = EntityBuilder.getPKColumns(entityClass); - //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值 + //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值 for (EntityColumn column : columnList) { sql.append(" AND " + column.getColumnEqualsHolder()); } @@ -508,7 +508,7 @@ public static String wherePKColumns(Class entityClass, boolean useVersion) { } /** - * where所有列的条件,会判断是否!=null + * where所有列的条件,会判断是否!=null * * @param entityClass 对象 * @param empty 是否为empty @@ -519,7 +519,7 @@ public static String whereAllIfColumns(Class entityClass, boolean empty) { } /** - * where所有列的条件,会判断是否!=null + * where所有列的条件,会判断是否!=null * * @param entityClass 对象 * @param empty 是否为empty @@ -531,7 +531,7 @@ public static String whereAllIfColumns(Class entityClass, boolean empty, bool sql.append(""); //获取全部列 Set columnList = EntityBuilder.getColumns(entityClass); - //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值 + //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值 for (EntityColumn column : columnList) { if (!useVersion || !column.getEntityField().isAnnotationPresent(Version.class)) { sql.append(getIfNotNull(column, " AND " + column.getColumnEqualsHolder(), empty)); @@ -557,7 +557,7 @@ public static String whereVersion(Class entityClass) { for (EntityColumn column : columnList) { if (column.getEntityField().isAnnotationPresent(Version.class)) { if (hasVersion) { - throw new VersionException(entityClass.getCanonicalName() + " 中包含多个带有 @Version 注解的字段,一个类中只能存在一个带有 @Version 注解的字段!"); + throw new VersionException(entityClass.getCanonicalName() + " 中包含多个带有 @Version 注解的字段,一个类中只能存在一个带有 @Version 注解的字段!"); } hasVersion = true; result = " AND " + column.getColumnEqualsHolder(); @@ -567,7 +567,7 @@ public static String whereVersion(Class entityClass) { } /** - * 获取默认的orderBy,通过注解设置的 + * 获取默认的orderBy,通过注解设置的 * * @param entityClass 对象 * @return the string @@ -628,7 +628,7 @@ public static String countColumn(Class entityClass) { } /** - * 查询中的orderBy条件,会判断默认orderBy + * 查询中的orderBy条件,会判断默认orderBy * * @param entityClass 对象 * @return the string @@ -675,7 +675,7 @@ public static String check(Class entityClass) { } /** - * 查询中的where结构,用于只有一个参数时 + * 查询中的where结构,用于只有一个参数时 * * @return the string */ @@ -713,7 +713,7 @@ public static String whereClause() { } /** - * Update中的where结构,用于多个参数时,带@Param("condition")注解时 + * Update中的where结构,用于多个参数时,带@Param("condition")注解时 * * @return the string */ diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/Marker.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/Marker.java index 66bd9853ec..933e3dde3a 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/Marker.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/Marker.java @@ -24,7 +24,7 @@ package org.aoju.bus.mapper.common; /** - * 标记接口,继承该接口的接口,在MapperScannerConfigurer#setMarkerInterface时,会自动注册到通用Mapper + * 标记接口,继承该接口的接口,在MapperScannerConfigurer#setMarkerInterface时,会自动注册到通用Mapper * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/delete/DeleteByPrimaryKeyMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/delete/DeleteByPrimaryKeyMapper.java index 0cbe6b639b..481c782927 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/delete/DeleteByPrimaryKeyMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/delete/DeleteByPrimaryKeyMapper.java @@ -36,7 +36,7 @@ public interface DeleteByPrimaryKeyMapper { /** - * 根据主键字段进行删除,方法参数必须包含完整的主键属性 + * 根据主键字段进行删除,方法参数必须包含完整的主键属性 * * @param key 对象 * @return 操作数量 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/delete/DeleteMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/delete/DeleteMapper.java index 0a1416827d..f05056882a 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/delete/DeleteMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/delete/DeleteMapper.java @@ -36,7 +36,7 @@ public interface DeleteMapper { /** - * 根据实体属性作为条件进行删除,查询条件使用等号 + * 根据实体属性作为条件进行删除,查询条件使用等号 * * @param record 对象 * @return 操作数量 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertListMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertListMapper.java index 240d1c2f0d..7fc4b13253 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertListMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertListMapper.java @@ -30,7 +30,7 @@ import java.util.List; /** - * 通用Mapper接口,特殊方法,批量插入,支持批量插入的数据库都可以使用,例如mysql,h2等 + * 通用Mapper接口,特殊方法,批量插入,支持批量插入的数据库都可以使用,例如mysql,h2等 * * @author Kimi Liu * @version 5.2.2 @@ -39,9 +39,9 @@ public interface InsertListMapper { /** - * 批量插入,支持批量插入的数据库可以使用,例如MySQL,H2等 + * 批量插入,支持批量插入的数据库可以使用,例如MySQL,H2等 *

    - * 不支持主键策略,插入前需要设置好主键的值 + * 不支持主键策略,插入前需要设置好主键的值 * * @param list 对象列表 * @return 操作数量 @@ -50,7 +50,7 @@ public interface InsertListMapper { int insertList(List list); /** - * 批量插入,支持批量插入的数据库可以使用,例如MySQL,H2等,另外该接口限制实体包含`id`属性并且必须为自增列 + * 批量插入,支持批量插入的数据库可以使用,例如MySQL,H2等,另外该接口限制实体包含`id`属性并且必须为自增列 * * @param list 对象列表 * @return 操作数量 @@ -60,7 +60,7 @@ public interface InsertListMapper { int insertListNoId(List list); /** - * 插入数据,限制为实体包含`id`属性并且必须为自增列,实体配置的主键策略无效 + * 插入数据,限制为实体包含`id`属性并且必须为自增列,实体配置的主键策略无效 * * @param record 对象 * @return 操作数量 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertMapper.java index 1c315f3d4f..2aa0ce1ff9 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertMapper.java @@ -36,7 +36,7 @@ public interface InsertMapper { /** - * 保存一个实体,null的属性也会保存,不会使用数据库默认值 + * 保存一个实体,null的属性也会保存,不会使用数据库默认值 * * @param record 对象 * @return 操作数量 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertSelectiveMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertSelectiveMapper.java index f545018836..b3aea8ddf7 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertSelectiveMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/insert/InsertSelectiveMapper.java @@ -36,7 +36,7 @@ public interface InsertSelectiveMapper { /** - * 保存一个实体,null的属性不会保存,会使用数据库默认值 + * 保存一个实体,null的属性不会保存,会使用数据库默认值 * * @param record 对象 * @return 操作数量 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/ExistsWithPrimaryKeyMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/ExistsWithPrimaryKeyMapper.java index ff9d48c556..c8ac5e562d 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/ExistsWithPrimaryKeyMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/ExistsWithPrimaryKeyMapper.java @@ -36,7 +36,7 @@ public interface ExistsWithPrimaryKeyMapper { /** - * 根据主键字段查询总数,方法参数必须包含完整的主键属性,查询条件使用等号 + * 根据主键字段查询总数,方法参数必须包含完整的主键属性,查询条件使用等号 * * @param key 对象 * @return the boolean diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectByPrimaryKeyMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectByPrimaryKeyMapper.java index 5cf3d27b41..3d5a398b6d 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectByPrimaryKeyMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectByPrimaryKeyMapper.java @@ -36,7 +36,7 @@ public interface SelectByPrimaryKeyMapper { /** - * 根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号 + * 根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号 * * @param key 对象 * @return 对象 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectCountMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectCountMapper.java index eb8b400d4f..83aa570cda 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectCountMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectCountMapper.java @@ -36,7 +36,7 @@ public interface SelectCountMapper { /** - * 根据实体中的属性查询总数,查询条件使用等号 + * 根据实体中的属性查询总数,查询条件使用等号 * * @param record 对象 * @return 对象 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectMapper.java index 866bda83d3..445477b39e 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectMapper.java @@ -38,7 +38,7 @@ public interface SelectMapper { /** - * 根据实体中的属性值进行查询,查询条件使用等号 + * 根据实体中的属性值进行查询,查询条件使用等号 * * @param record 对象 * @return 对象 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectOneMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectOneMapper.java index 122adb6efd..c68b4a2c5f 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectOneMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/select/SelectOneMapper.java @@ -36,7 +36,7 @@ public interface SelectOneMapper { /** - * 根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号 + * 根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号 * * @param record 对象 * @return 对象 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/update/UpdateByPrimaryKeyMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/update/UpdateByPrimaryKeyMapper.java index b121346b2f..65948d9229 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/update/UpdateByPrimaryKeyMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/basic/update/UpdateByPrimaryKeyMapper.java @@ -37,7 +37,7 @@ public interface UpdateByPrimaryKeyMapper { /** - * 根据主键更新实体全部字段,null值会被更新 + * 根据主键更新实体全部字段,null值会被更新 * * @param record 对象 * @return 操作数量 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/condition/UpdateByConditionMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/condition/UpdateByConditionMapper.java index c15b252aab..fef5709192 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/condition/UpdateByConditionMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/condition/UpdateByConditionMapper.java @@ -38,7 +38,7 @@ public interface UpdateByConditionMapper { /** - * 根据Condition条件更新实体`record`包含的全部属性,null值会被更新 + * 根据Condition条件更新实体`record`包含的全部属性,null值会被更新 * * @param record 对象 * @param condition 条件 @@ -49,7 +49,7 @@ public interface UpdateByConditionMapper { int updateByCondition(@Param("record") T record, @Param("condition") Object condition); /** - * 根据Condition条件更新实体`record`包含的全部属性,null值会被更新 + * 根据Condition条件更新实体`record`包含的全部属性,null值会被更新 * * @param record 对象 * @param condition 条件 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/dialect/sqlserver/InsertMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/dialect/sqlserver/InsertMapper.java index ac01bf85e3..49842ad851 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/dialect/sqlserver/InsertMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/dialect/sqlserver/InsertMapper.java @@ -37,7 +37,7 @@ public interface InsertMapper { /** - * 插入数据库,`null`值也会插入,不会使用列的默认值 + * 插入数据库,`null`值也会插入,不会使用列的默认值 * * @param record 对象 * @return 结果 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/dialect/sqlserver/InsertSelectiveMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/dialect/sqlserver/InsertSelectiveMapper.java index e8c87f6820..959bc7728b 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/dialect/sqlserver/InsertSelectiveMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/dialect/sqlserver/InsertSelectiveMapper.java @@ -37,7 +37,7 @@ public interface InsertSelectiveMapper { /** - * 保存一个实体,null的属性不会保存,会使用数据库默认值 + * 保存一个实体,null的属性不会保存,会使用数据库默认值 * * @param record 对象 * @return 操作数量 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/ids/DeleteByIdsMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/ids/DeleteByIdsMapper.java index dd41e92b82..979cdbafd4 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/ids/DeleteByIdsMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/ids/DeleteByIdsMapper.java @@ -36,7 +36,7 @@ public interface DeleteByIdsMapper { /** - * 根据主键字符串进行删除,类中只有存在一个带有@Id注解的字段 + * 根据主键字符串进行删除,类中只有存在一个带有@Id注解的字段 * * @param ids 如 "1,2,3,4" * @return 结果 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/ids/SelectByIdsMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/ids/SelectByIdsMapper.java index 3d38f568f8..7a5351d8d4 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/ids/SelectByIdsMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/ids/SelectByIdsMapper.java @@ -38,7 +38,7 @@ public interface SelectByIdsMapper { /** - * 根据主键字符串进行查询,类中只有存在一个带有@Id注解的字段 + * 根据主键字符串进行查询,类中只有存在一个带有@Id注解的字段 * * @param ids 如 "1,2,3,4" * @return 结果集 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/rowbounds/SelectByConditionRowBoundsMapper.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/rowbounds/SelectByConditionRowBoundsMapper.java index 47e38fa9df..114f0678d7 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/common/rowbounds/SelectByConditionRowBoundsMapper.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/common/rowbounds/SelectByConditionRowBoundsMapper.java @@ -39,7 +39,7 @@ public interface SelectByConditionRowBoundsMapper { /** - * 根据Condition条件和RowBounds进行分页查询,该方法和selectByWhereAndRowBounds完全一样,只是名字改成了Condition + * 根据Condition条件和RowBounds进行分页查询,该方法和selectByWhereAndRowBounds完全一样,只是名字改成了Condition * * @param condition 条件 * @param rowBounds RowBounds信息 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/criteria/Criteria.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/criteria/Criteria.java index 868c2501d2..8e87fe3e80 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/criteria/Criteria.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/criteria/Criteria.java @@ -259,7 +259,7 @@ public Criteria andCondition(String condition) { } /** - * 手写左边条件,右边用value值 + * 手写左边条件,右边用value值 * * @param condition 例如 "length(countryname)=" * @param value 例如 5 @@ -293,7 +293,7 @@ public Criteria andEqualTo(Object param) { } /** - * 将此对象的所有字段参数作为相等查询条件,如果字段为 null,则为 is null + * 将此对象的所有字段参数作为相等查询条件,如果字段为 null,则为 is null * * @param param 参数对象 * @return the Criteria @@ -414,7 +414,7 @@ public Criteria orCondition(String condition) { } /** - * 手写左边条件,右边用value值 + * 手写左边条件,右边用value值 * * @param condition 例如 "length(countryname)=" * @param value 例如 5 @@ -448,7 +448,7 @@ public Criteria orEqualTo(Object param) { } /** - * 将此对象的所有字段参数作为相等查询条件,如果字段为 null,则为 is null + * 将此对象的所有字段参数作为相等查询条件,如果字段为 null,则为 is null * * @param param 参数对象 * @return the Criteria diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/criteria/SimpleType.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/criteria/SimpleType.java index b53b0dfae5..3554ed0eb3 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/criteria/SimpleType.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/criteria/SimpleType.java @@ -56,7 +56,7 @@ public class SimpleType { private static final Set> SIMPLE_TYPE_SET = new HashSet>(); /** - * 特别注意:由于基本类型有默认值,因此在实体类中不建议使用基本类型作为数据库字段类型 + * 特别注意:由于基本类型有默认值,因此在实体类中不建议使用基本类型作为数据库字段类型 */ static { SIMPLE_TYPE_SET.add(byte[].class); @@ -107,7 +107,7 @@ public static void registerSimpleType(String classes) { } /** - * 注册新的类型,不存在时不抛出异常 + * 注册新的类型,不存在时不抛出异常 * * @param clazz 对象 */ diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/Condition.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/Condition.java index ae60e27c9c..86090ea8b6 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/Condition.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/Condition.java @@ -81,10 +81,10 @@ public Condition(Class clazz) { } /** - * 带exists参数的构造方法,默认notNull为false,允许为空 + * 带exists参数的构造方法,默认notNull为false,允许为空 * * @param clazz 对象 - * @param exists - true时,如果字段不存在就抛出异常,false时,如果不存在就不使用该字段的条件 + * @param exists - true时,如果字段不存在就抛出异常,false时,如果不存在就不使用该字段的条件 */ public Condition(Class clazz, boolean exists) { this(clazz, exists, false); @@ -94,8 +94,8 @@ public Condition(Class clazz, boolean exists) { * 带exists参数的构造方法 * * @param entityClass 对象 - * @param exists - true时,如果字段不存在就抛出异常,false时,如果不存在就不使用该字段的条件 - * @param notNull - true时,如果值为空,就会抛出异常,false时,如果为空就不使用该字段的条件 + * @param exists - true时,如果字段不存在就抛出异常,false时,如果不存在就不使用该字段的条件 + * @param notNull - true时,如果值为空,就会抛出异常,false时,如果为空就不使用该字段的条件 */ public Condition(Class entityClass, boolean exists, boolean notNull) { this.exists = exists; @@ -134,7 +134,7 @@ public OrderBy orderBy(String property) { } /** - * 排除查询字段,优先级低于 selectProperties + * 排除查询字段,优先级低于 selectProperties * * @param properties 属性名的可变参数 * @return Condition @@ -148,7 +148,7 @@ public Condition excludeProperties(String... properties) { if (propertyMap.containsKey(property)) { this.excludeColumns.add(propertyMap.get(property).getColumn()); } else { - throw new MapperException("类 " + entityClass.getSimpleName() + " 不包含属性 \'" + property + "\',或该属性被@Transient注释!"); + throw new MapperException("类 " + entityClass.getSimpleName() + " 不包含属性 \'" + property + "\',或该属性被@Transient注释!"); } } } @@ -170,7 +170,7 @@ public Condition selectProperties(String... properties) { if (propertyMap.containsKey(property)) { this.selectColumns.add(propertyMap.get(property).getColumn()); } else { - throw new MapperException("类 " + entityClass.getSimpleName() + " 不包含属性 \'" + property + "\',或该属性被@Transient注释!"); + throw new MapperException("类 " + entityClass.getSimpleName() + " 不包含属性 \'" + property + "\',或该属性被@Transient注释!"); } } } diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/Config.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/Config.java index d66404c253..6d37a7a891 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/Config.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/Config.java @@ -51,26 +51,26 @@ public class Config { private String catalog; private String schema; private boolean BEFORE; - //校验调用方法时,Condition(entityClass)和Mapper是否一致 + //校验调用方法时,Condition(entityClass)和Mapper是否一致 private boolean checkEntityClass; //使用简单类型 private boolean useSimpleType = true; private boolean enumAsSimpleType; /** - * 是否支持方法上的注解,默认false + * 是否支持方法上的注解,默认false */ private boolean enableMethodAnnotation; /** - * 对于一般的getAllIfColumnNode,是否判断!='',默认不判断 + * 对于一般的getAllIfColumnNode,是否判断!='',默认不判断 */ private boolean notEmpty; /** - * 字段转换风格,默认驼峰转下划线 + * 字段转换风格,默认驼峰转下划线 */ private Style style; /** - * 处理关键字,默认空,mysql可以设置为 `{0}`, sqlserver 为 [{0}],{0} 代表的列名 + * 处理关键字,默认空,mysql可以设置为 `{0}`, sqlserver 为 [{0}],{0} 代表的列名 */ private String wrapKeyword = ""; @@ -79,7 +79,7 @@ public String getCatalog() { } /** - * 设置全局的catalog,默认为空,如果设置了值,操作表时的sql会是catalog.tablename + * 设置全局的catalog,默认为空,如果设置了值,操作表时的sql会是catalog.tablename * * @param catalog string */ @@ -115,7 +115,7 @@ public void setIdentity(String IDENTITY) { } /** - * 获取表前缀,带catalog或schema + * 获取表前缀,带catalog或schema * * @return string */ @@ -134,7 +134,7 @@ public String getSchema() { } /** - * 设置全局的schema,默认为空,如果设置了值,操作表时的sql会是schema.tablename + * 设置全局的schema,默认为空,如果设置了值,操作表时的sql会是schema.tablename * 如果同时设置了catalog,优先使用catalog.tablename * * @param schema schema @@ -156,8 +156,8 @@ public String getSeqFormat() { } /** - * 序列的获取规则,使用{num}格式化参数,默认值为{0}.nextval,针对Oracle - * 可选参数一共3个,对应0,1,2,3分别为SequenceName,ColumnName, PropertyName,TableName + * 序列的获取规则,使用{num}格式化参数,默认值为{0}.nextval,针对Oracle + * 可选参数一共3个,对应0,1,2,3分别为SequenceName,ColumnName, PropertyName,TableName * * @param seqFormat sql */ @@ -323,13 +323,13 @@ public void setProperties(Properties properties) { this.notEmpty = Boolean.valueOf(properties.getProperty("notEmpty")); this.enableMethodAnnotation = Boolean.valueOf(properties.getProperty("enableMethodAnnotation")); this.checkEntityClass = Boolean.valueOf(properties.getProperty("checkEntityClass")); - //默认值 true,所以要特殊判断 + //默认值 true,所以要特殊判断 String useSimpleTypeStr = properties.getProperty("useSimpleType"); if (Assert.isNotEmpty(useSimpleTypeStr)) { this.useSimpleType = Boolean.valueOf(useSimpleTypeStr); } this.enumAsSimpleType = Boolean.valueOf(properties.getProperty("enumAsSimpleType")); - //注册新的基本类型,以逗号隔开,使用全限定类名 + //注册新的基本类型,以逗号隔开,使用全限定类名 String simpleTypes = properties.getProperty("simpleTypes"); if (Assert.isNotEmpty(simpleTypes)) { SimpleType.registerSimpleType(simpleTypes); diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityColumn.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityColumn.java index 8082a9bdad..c9558d5360 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityColumn.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityColumn.java @@ -131,7 +131,7 @@ public String getColumnHolder(String entityName, String suffix, String separator } else if (this.typeHandler != null) { sb.append(",typeHandler="); sb.append(this.typeHandler.getCanonicalName()); - } else if (!this.javaType.isArray()) {//当类型为数组时,不设置javaType#103 + } else if (!this.javaType.isArray()) {//当类型为数组时,不设置javaType#103 sb.append(",javaType="); sb.append(javaType.getCanonicalName()); } diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityField.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityField.java index 023684b35c..420d0ad1e0 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityField.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityField.java @@ -29,7 +29,7 @@ import java.lang.reflect.Method; /** - * 封装字段和方法,统一调用某些方法 + * 封装字段和方法,统一调用某些方法 * * @author Kimi Liu * @version 5.2.2 @@ -64,7 +64,7 @@ public EntityField(Field field, PropertyDescriptor propertyDescriptor) { } /** - * 先创建field,然后可以通过该方法获取property等属性 + * 先创建field,然后可以通过该方法获取property等属性 * * @param other field */ diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityTableName.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityTableName.java index d36a9159ce..d044b861cb 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityTableName.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/entity/EntityTableName.java @@ -24,7 +24,7 @@ package org.aoju.bus.mapper.entity; /** - * 实现动态表名时,实体类需要实现该接口 + * 实现动态表名时,实体类需要实现该接口 * * @author Kimi Liu * @version 5.2.2 @@ -33,7 +33,7 @@ public interface EntityTableName { /** - * 获取动态表名 - 只要有返回值,不是null和'',就会用返回值作为表名 + * 获取动态表名 - 只要有返回值,不是null和'',就会用返回值作为表名 * * @return string 表名 */ diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseDeleteProvider.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseDeleteProvider.java index 0249b6cd8d..ebd7c24207 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseDeleteProvider.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseDeleteProvider.java @@ -29,7 +29,7 @@ import org.apache.ibatis.mapping.MappedStatement; /** - * BaseDeleteMapper实现类,基础方法实现类 + * BaseDeleteMapper实现类,基础方法实现类 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseInsertProvider.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseInsertProvider.java index cc82884ae8..483151c9df 100755 --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseInsertProvider.java +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseInsertProvider.java @@ -36,7 +36,7 @@ import java.util.Set; /** - * BaseInsertProvider实现类,基础方法实现类 + * BaseInsertProvider实现类,基础方法实现类 * * @author Kimi Liu * @version 5.2.2 @@ -49,7 +49,7 @@ public BaseInsertProvider(Class mapperClass, MapperBuilder mapperBuilder) { } /** - * 插入全部,这段代码比较复杂,这里举个例子 + * 插入全部,这段代码比较复杂,这里举个例子 * CountryU生成的insert方法结构如下: *

          * <bind name="countryname_bind" value='@java.util.UUID@randomUUID().toString().replace("-", "")'/>
    @@ -84,8 +84,8 @@ public String insert(MappedStatement ms) {
                     //这种情况下,如果原先的字段有值,需要先缓存起来,否则就一定会使用自动增长
                     //这是一个bind节点
                     sql.append(SqlSourceBuilder.getBindCache(column));
    -                //如果是Identity列,就需要插入selectKey
    -                //如果已经存在Identity列,抛出异常
    +                //如果是Identity列,就需要插入selectKey
    +                //如果已经存在Identity列,抛出异常
                     if (hasIdentityKey) {
                         //jdbc类型只需要添加一次
                         if (null != column.getGenerator() && "JDBC".equals(column.getGenerator())) {
    @@ -97,7 +97,7 @@ public String insert(MappedStatement ms) {
                     SelectKey.newSelectKeyMappedStatement(ms, column, entityClass, isBEFORE(), getIDENTITY(column));
                     hasIdentityKey = true;
                 } else if (column.isUuid()) {
    -                //uuid的情况,直接插入bind节点
    +                //uuid的情况,直接插入bind节点
                     sql.append(SqlSourceBuilder.getBindValue(column, getUUID()));
                 }
             }
    @@ -108,7 +108,7 @@ public String insert(MappedStatement ms) {
                 if (!column.isInsertable()) {
                     continue;
                 }
    -            //优先使用传入的属性值,当原属性property!=null时,用原属性
    +            //优先使用传入的属性值,当原属性property!=null时,用原属性
                 //自增的情况下,如果默认有值,就会备份到property_cache中,所以这里需要先判断备份的值是否存在
                 if (column.isIdentity()) {
                     sql.append(SqlSourceBuilder.getIfCacheNotNull(column, column.getColumnHolder(null, "_cache", ",")));
    @@ -116,7 +116,7 @@ public String insert(MappedStatement ms) {
                     //其他情况值仍然存在原property中
                     sql.append(SqlSourceBuilder.getIfNotNull(column, column.getColumnHolder(null, null, ","), isNotEmpty()));
                 }
    -            //当属性为null时,如果存在主键策略,会自动获取值,如果不存在,则使用null
    +            //当属性为null时,如果存在主键策略,会自动获取值,如果不存在,则使用null
                 //序列的情况
                 if (Assert.isNotEmpty(column.getSequenceName())) {
                     sql.append(SqlSourceBuilder.getIfIsNull(column, getSeqNextVal(column) + " ,", false));
    @@ -125,7 +125,7 @@ public String insert(MappedStatement ms) {
                 } else if (column.isUuid()) {
                     sql.append(SqlSourceBuilder.getIfIsNull(column, column.getColumnHolder(null, "_bind", ","), isNotEmpty()));
                 } else {
    -                //当null的时候,如果不指定jdbcType,oracle可能会报异常,指定VARCHAR不影响其他
    +                //当null的时候,如果不指定jdbcType,oracle可能会报异常,指定VARCHAR不影响其他
                     sql.append(SqlSourceBuilder.getIfIsNull(column, column.getColumnHolder(null, null, ","), isNotEmpty()));
                 }
             }
    @@ -134,7 +134,7 @@ public String insert(MappedStatement ms) {
         }
     
         /**
    -     * 插入不为null的字段,这段代码比较复杂,这里举个例子
    +     * 插入不为null的字段,这段代码比较复杂,这里举个例子
          * CountryU生成的insertSelective方法结构如下:
          * 
          * <bind name="countryname_bind" value='@java.util.UUID@randomUUID().toString().replace("-", "")'/>
    @@ -175,8 +175,8 @@ public String insertSelective(MappedStatement ms) {
                     //这种情况下,如果原先的字段有值,需要先缓存起来,否则就一定会使用自动增长
                     //这是一个bind节点
                     sql.append(SqlSourceBuilder.getBindCache(column));
    -                //如果是Identity列,就需要插入selectKey
    -                //如果已经存在Identity列,抛出异常
    +                //如果是Identity列,就需要插入selectKey
    +                //如果已经存在Identity列,抛出异常
                     if (hasIdentityKey) {
                         //jdbc类型只需要添加一次
                         if (column.getGenerator() != null && column.getGenerator().equals("JDBC")) {
    @@ -188,7 +188,7 @@ public String insertSelective(MappedStatement ms) {
                     SelectKey.newSelectKeyMappedStatement(ms, column, entityClass, isBEFORE(), getIDENTITY(column));
                     hasIdentityKey = true;
                 } else if (column.isUuid()) {
    -                //uuid的情况,直接插入bind节点
    +                //uuid的情况,直接插入bind节点
                     sql.append(SqlSourceBuilder.getBindValue(column, getUUID()));
                 }
             }
    @@ -210,7 +210,7 @@ public String insertSelective(MappedStatement ms) {
                 if (!column.isInsertable()) {
                     continue;
                 }
    -            //优先使用传入的属性值,当原属性property!=null时,用原属性
    +            //优先使用传入的属性值,当原属性property!=null时,用原属性
                 //自增的情况下,如果默认有值,就会备份到property_cache中,所以这里需要先判断备份的值是否存在
                 if (column.isIdentity()) {
                     sql.append(SqlSourceBuilder.getIfCacheNotNull(column, column.getColumnHolder(null, "_cache", ",")));
    @@ -218,7 +218,7 @@ public String insertSelective(MappedStatement ms) {
                     //其他情况值仍然存在原property中
                     sql.append(SqlSourceBuilder.getIfNotNull(column, column.getColumnHolder(null, null, ","), isNotEmpty()));
                 }
    -            //当属性为null时,如果存在主键策略,会自动获取值,如果不存在,则使用null
    +            //当属性为null时,如果存在主键策略,会自动获取值,如果不存在,则使用null
                 //序列的情况
                 if (Assert.isNotEmpty(column.getSequenceName())) {
                     sql.append(SqlSourceBuilder.getIfIsNull(column, getSeqNextVal(column) + " ,", isNotEmpty()));
    diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseSelectProvider.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseSelectProvider.java
    index 45b5272bdd..005cf37582 100755
    --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseSelectProvider.java
    +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseSelectProvider.java
    @@ -29,7 +29,7 @@
     import org.apache.ibatis.mapping.MappedStatement;
     
     /**
    - * BaseSelectProvider实现类,基础方法实现类
    + * BaseSelectProvider实现类,基础方法实现类
      *
      * @author Kimi Liu
      * @version 5.2.2
    diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseUpdateProvider.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseUpdateProvider.java
    index 2d2652f4e0..5d7708e52e 100755
    --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseUpdateProvider.java
    +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/BaseUpdateProvider.java
    @@ -29,7 +29,7 @@
     import org.apache.ibatis.mapping.MappedStatement;
     
     /**
    - * BaseUpdateProvider实现类,基础方法实现类
    + * BaseUpdateProvider实现类,基础方法实现类
      *
      * @author Kimi Liu
      * @version 5.2.2
    diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/ConditionProvider.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/ConditionProvider.java
    index bee1d0b77e..ab2fe9947a 100755
    --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/ConditionProvider.java
    +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/ConditionProvider.java
    @@ -29,7 +29,7 @@
     import org.apache.ibatis.mapping.MappedStatement;
     
     /**
    - * ConditionProvider实现类,基础方法实现类
    + * ConditionProvider实现类,基础方法实现类
      *
      * @author Kimi Liu
      * @version 5.2.2
    diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/EmptyProvider.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/EmptyProvider.java
    index d4eb1b1746..58d3853dbc 100755
    --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/EmptyProvider.java
    +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/EmptyProvider.java
    @@ -28,7 +28,7 @@
     
     /**
      * 空方法Mapper接口默认MapperTemplate
    - * 如BaseSelectMapper,接口纯继承,不包含任何方法
    + * 如BaseSelectMapper,接口纯继承,不包含任何方法
      *
      * @author Kimi Liu
      * @version 5.2.2
    diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/IdsProvider.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/IdsProvider.java
    index e6c5b7286c..5e15817793 100755
    --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/IdsProvider.java
    +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/IdsProvider.java
    @@ -48,7 +48,7 @@ public IdsProvider(Class mapperClass, MapperBuilder mapperBuilder) {
         }
     
         /**
    -     * 根据主键字符串进行删除,类中只有存在一个带有@Id注解的字段
    +     * 根据主键字符串进行删除,类中只有存在一个带有@Id注解的字段
          *
          * @param ms MappedStatement
          * @return the string
    @@ -70,7 +70,7 @@ public String deleteByIds(MappedStatement ms) {
         }
     
         /**
    -     * 根据主键字符串进行查询,类中只有存在一个带有@Id注解的字段
    +     * 根据主键字符串进行查询,类中只有存在一个带有@Id注解的字段
          *
          * @param ms MappedStatement
          * @return the string
    diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/InsertListProvider.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/InsertListProvider.java
    index 1872b7e5ca..44ec339875 100755
    --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/InsertListProvider.java
    +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/InsertListProvider.java
    @@ -63,7 +63,7 @@ public String insertList(MappedStatement ms) {
                     .append("");
             //获取全部列
             Set columnList = EntityBuilder.getColumns(entityClass);
    -        //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值
    +        //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值
             for (EntityColumn column : columnList) {
                 if (column.isInsertable()) {
                     sql.append(column.getColumnHolder("record") + ",");
    @@ -91,7 +91,7 @@ public String insertListNoId(MappedStatement ms) {
                     .append("");
             //获取全部列
             Set columnList = EntityBuilder.getColumns(entityClass);
    -        //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值
    +        //当某个列有主键策略时,不需要考虑他的属性是否为空,因为如果为空,一定会根据主键策略给他生成一个值
             for (EntityColumn column : columnList) {
                 if (!column.isId() && column.isInsertable()) {
                     sql.append(column.getColumnHolder("record") + ",");
    @@ -103,7 +103,7 @@ public String insertListNoId(MappedStatement ms) {
         }
     
         /**
    -     * 插入,主键id,自增
    +     * 插入,主键id,自增
          *
          * @param ms MappedStatement
          * @return the string
    diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/SqlServerProvider.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/SqlServerProvider.java
    index 496d959e02..8b8b0bdac4 100755
    --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/SqlServerProvider.java
    +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/provider/SqlServerProvider.java
    @@ -29,7 +29,7 @@
     import org.apache.ibatis.mapping.MappedStatement;
     
     /**
    - * SqlServerProvider实现类,特殊方法实现类
    + * SqlServerProvider实现类,特殊方法实现类
      *
      * @author Kimi Liu
      * @version 5.2.2
    diff --git a/bus-mapper/src/main/java/org/aoju/bus/mapper/version/DefaultNextVersion.java b/bus-mapper/src/main/java/org/aoju/bus/mapper/version/DefaultNextVersion.java
    index 78226b26e6..b5755704d2 100755
    --- a/bus-mapper/src/main/java/org/aoju/bus/mapper/version/DefaultNextVersion.java
    +++ b/bus-mapper/src/main/java/org/aoju/bus/mapper/version/DefaultNextVersion.java
    @@ -40,7 +40,7 @@ public Object nextVersion(Object current) throws VersionException {
             } else if (current instanceof Long) {
                 return (Long) current + 1L;
             } else {
    -            throw new VersionException("默认的 NextVersion 只支持 Integer 和 Long 类型的版本号,如果有需要请自行扩展!");
    +            throw new VersionException("默认的 NextVersion 只支持 Integer 和 Long 类型的版本号,如果有需要请自行扩展!");
             }
         }
     
    diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/Builder.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/Builder.java
    index 992ebfe722..0cb0eee150 100755
    --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/Builder.java
    +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/Builder.java
    @@ -69,8 +69,8 @@ public static Builder fromBaseUrl(String baseUrl) {
         }
     
         /**
    -     * 如果给定字符串{@code str}中不包含{@code appendStr},则在{@code str}后追加{@code appendStr};
    -     * 如果已包含{@code appendStr},则在{@code str}后追加{@code otherwise}
    +     * 如果给定字符串{@code str}中不包含{@code appendStr},则在{@code str}后追加{@code appendStr};
    +     * 如果已包含{@code appendStr},则在{@code str}后追加{@code otherwise}
          *
          * @param str       给定的字符串
          * @param appendStr 需要追加的内容
    @@ -88,7 +88,7 @@ public static String appendIfNotContain(String str, String appendStr, String oth
         }
     
         /**
    -     * map转字符串,转换后的字符串格式为 {@code xxx=xxx&xxx=xxx}
    +     * map转字符串,转换后的字符串格式为 {@code xxx=xxx&xxx=xxx}
          *
          * @param params 待转换的map
          * @param encode 是否转码
    @@ -168,7 +168,7 @@ public String build(boolean encode) {
         public enum Status {
             /**
              * 2000:正常;
    -         * other:调用异常,具体异常内容见{@code msg}
    +         * other:调用异常,具体异常内容见{@code msg}
              */
             SUCCESS("2000", "Success"),
             FAILURE("5000", "Failure"),
    diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/Complex.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/Complex.java
    index d7b56a7173..b83f6657b5 100755
    --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/Complex.java
    +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/Complex.java
    @@ -27,7 +27,7 @@
     import org.aoju.bus.oauth.magic.Callback;
     
     /**
    - * OAuth平台的API管理类的统一接口,提供以下接口:
    + * OAuth平台的API管理类的统一接口,提供以下接口:
      * 1) {@link Complex#authorize()}: 获取授权api. 必须实现
      * 2) {@link Complex#accessToken()}: 获取授权api. 必须实现
      * 3) {@link Complex#userInfo()}: 获取授权api. 必须实现
    @@ -35,9 +35,9 @@
      * 5) {@link Complex#refresh()} ()}: 获取授权api. 非必须实现接口(部分平台不支持)
      * 

    * 注: - * ①、如需通过扩展实现第三方授权,请参考{@link Registry}自行创建对应的枚举类并实现{@link Complex}接口 - * ②、如果不是使用的枚举类,那么在授权成功后获取用户信息时,需要单独处理source字段的赋值 - * ③、如果扩展了对应枚举类时,在{@link Provider#login(Callback)}中可以通过{@code xx.toString()}获取对应的source + * ①、如需通过扩展实现第三方授权,请参考{@link Registry}自行创建对应的枚举类并实现{@link Complex}接口 + * ②、如果不是使用的枚举类,那么在授权成功后获取用户信息时,需要单独处理source字段的赋值 + * ③、如果扩展了对应枚举类时,在{@link Provider#login(Callback)}中可以通过{@code xx.toString()}获取对应的source * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/Context.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/Context.java index ab6b2f3e24..b3da58938a 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/Context.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/Context.java @@ -57,14 +57,14 @@ public class Context { private String redirectUri; /** - * 支付宝公钥:当选择支付宝登录时,该值可用 + * 支付宝公钥:当选择支付宝登录时,该值可用 * 对应“RSA2(SHA256)密钥”中的“支付宝公钥” */ private String alipayPublicKey; /** - * 是否需要申请unionid,目前只针对qq登录 - * 注:qq授权登录时,获取unionid需要单独发送邮件申请权限。如果个人开发者账号中申请了该权限,可以将该值置为true,在获取openId时就会同步获取unionId + * 是否需要申请unionid,目前只针对qq登录 + * 注:qq授权登录时,获取unionid需要单独发送邮件申请权限 如果个人开发者账号中申请了该权限,可以将该值置为true,在获取openId时就会同步获取unionId * 参考链接:http://wiki.connect.qq.com/unionid%E4%BB%8B%E7%BB%8D *

    * 1.7.1版本新增参数 @@ -80,7 +80,7 @@ public class Context { private String stackOverflowKey; /** - * 企业微信,授权方的网页应用ID + * 企业微信,授权方的网页应用ID * * @since 2.0.0 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/Provider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/Provider.java index 2cfa0fd9b4..9272a67e4b 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/Provider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/Provider.java @@ -29,7 +29,7 @@ import org.aoju.bus.oauth.magic.Message; /** - * 公共接口,所有平台的都需要实现该接口 + * 公共接口,所有平台的都需要实现该接口 * {@link Provider#authorize(String)} * {@link Provider#login(Callback)} * {@link Provider#revoke(AccToken)} @@ -42,9 +42,9 @@ public interface Provider { /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 */ default String authorize(String state) { diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/Registry.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/Registry.java index 38393f4872..b639118a62 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/Registry.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/Registry.java @@ -26,7 +26,7 @@ import org.aoju.bus.core.lang.exception.InstrumentException; /** - * 内置的各api需要的url, 用枚举类分平台类型管理 + * 内置的各api需要的url, 用枚举类分平台类型管理 * * @author Kimi Liu * @version 5.2.2 @@ -672,7 +672,7 @@ public String refresh() { /** * 饿了么 *

    - * 注:集成的是正式环境,非沙箱环境 + * 注:集成的是正式环境,非沙箱环境 * * @since 2.0.2 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/magic/Callback.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/magic/Callback.java index 81321afc62..da55019f41 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/magic/Callback.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/magic/Callback.java @@ -43,12 +43,12 @@ public class Callback { private String code; /** - * 访问AuthorizeUrl后回调时带的参数auth_code,该参数目前只使用于支付宝登录 + * 访问AuthorizeUrl后回调时带的参数auth_code,该参数目前只使用于支付宝登录 */ private String auth_code; /** - * 访问AuthorizeUrl后回调时带的参数state,用于和请求AuthorizeUrl前的state比较,防止CSRF攻击 + * 访问AuthorizeUrl后回调时带的参数state,用于和请求AuthorizeUrl前的state比较,防止CSRF攻击 */ private String state; diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/magic/Property.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/magic/Property.java index e8e9c453ba..bad9497405 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/magic/Property.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/magic/Property.java @@ -27,7 +27,7 @@ import org.aoju.bus.core.consts.Normal; /** - * 授权成功后的用户信息,根据授权平台的不同,获取的数据完整性也不同 + * 授权成功后的用户信息,根据授权平台的不同,获取的数据完整性也不同 * * @author Kimi Liu * @version 5.2.2 @@ -41,7 +41,7 @@ public class Property { /** - * 用户第三方系统的唯一id。在调用方集成改组件时,可以用uuid + source唯一确定一个用户 + * 用户第三方系统的唯一id 在调用方集成改组件时,可以用uuid + source唯一确定一个用户 * * @since 1.3.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/Cache.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/Cache.java index 41335babb6..7c6352ea8c 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/Cache.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/Cache.java @@ -24,7 +24,7 @@ package org.aoju.bus.oauth.metric; /** - * 缓存,用来缓存State + * 缓存,用来缓存State * * @author Kimi Liu * @version 5.2.2 @@ -41,7 +41,7 @@ public interface Cache { void set(String key, String value); /** - * 设置缓存,指定过期时间 + * 设置缓存,指定过期时间 * * @param key 缓存KEY * @param value 缓存内容 @@ -58,10 +58,10 @@ public interface Cache { String get(String key); /** - * 是否存在key,如果对应key的value值已过期,也返回false + * 是否存在key,如果对应key的value值已过期,也返回false * * @param key 缓存KEY - * @return true:存在key,并且value没过期;false:key不存在或者已过期 + * @return true:存在key,并且value没过期;false:key不存在或者已过期 */ boolean containsKey(String key); diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/DefaultCache.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/DefaultCache.java index 7860566141..2b7e4b62f5 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/DefaultCache.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/DefaultCache.java @@ -48,8 +48,8 @@ public class DefaultCache implements Cache { /** * 默认缓存过期时间:3分钟 - * 鉴于授权过程中,根据个人的操作习惯,或者授权平台的不同(google等),每个授权流程的耗时也有差异,不过单个授权流程一般不会太长 - * 本缓存工具默认的过期时间设置为3分钟,即程序默认认为3分钟内的授权有效,超过3分钟则默认失效,失效后删除 + * 鉴于授权过程中,根据个人的操作习惯,或者授权平台的不同(google等),每个授权流程的耗时也有差异,不过单个授权流程一般不会太长 + * 本缓存工具默认的过期时间设置为3分钟,即程序默认认为3分钟内的授权有效,超过3分钟则默认失效,失效后删除 */ public static long timeout = 3 * 60 * 1000; @@ -121,10 +121,10 @@ public String get(String key) { } /** - * 是否存在key,如果对应key的value值已过期,也返回false + * 是否存在key,如果对应key的value值已过期,也返回false * * @param key 缓存KEY - * @return true:存在key,并且value没过期;false:key不存在或者已过期 + * @return true:存在key,并且value没过期;false:key不存在或者已过期 */ @Override public boolean containsKey(String key) { @@ -155,7 +155,7 @@ public void pruneCache() { /** * 定时清理 * - * @param delay 间隔时长,单位毫秒 + * @param delay 间隔时长,单位毫秒 */ public void schedulePrune(long delay) { CacheScheduler.INSTANCE.schedule(this::pruneCache, delay); diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/DefaultStateCache.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/DefaultStateCache.java index 12d8fe45a7..b18cb261d3 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/DefaultStateCache.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/DefaultStateCache.java @@ -78,10 +78,10 @@ public String get(String key) { } /** - * 是否存在key,如果对应key的value值已过期,也返回false + * 是否存在key,如果对应key的value值已过期,也返回false * * @param key 缓存key - * @return true:存在key,并且value没过期;false:key不存在或者已过期 + * @return true:存在key,并且value没过期;false:key不存在或者已过期 */ @Override public boolean containsKey(String key) { diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/StateCache.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/StateCache.java index b3d63b5ff0..676e626343 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/StateCache.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/metric/StateCache.java @@ -24,7 +24,7 @@ package org.aoju.bus.oauth.metric; /** - * State缓存接口,方便用户扩展 + * State缓存接口,方便用户扩展 * * @author Kimi Liu * @version 5.2.2 @@ -58,10 +58,10 @@ public interface StateCache { String get(String key); /** - * 是否存在key,如果对应key的value值已过期,也返回false + * 是否存在key,如果对应key的value值已过期,也返回false * * @param key 缓存key - * @return true:存在key,并且value没过期;false:key不存在或者已过期 + * @return true:存在key,并且value没过期;false:key不存在或者已过期 */ boolean containsKey(String key); diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/AlipayProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/AlipayProvider.java index c9aeaecd99..e131039165 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/AlipayProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/AlipayProvider.java @@ -116,9 +116,9 @@ protected Property getUserInfo(AccToken token) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/BaiduProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/BaiduProvider.java index a54c9a1a33..ec316321e8 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/BaiduProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/BaiduProvider.java @@ -85,7 +85,7 @@ private String getAvatar(JSONObject object) { public Message revoke(AccToken token) { JSONObject object = JSONObject.parseObject(doGetRevoke(token)); this.checkResponse(object); - // 返回1表示取消授权成功,否则失败 + // 返回1表示取消授权成功,否则失败 Builder.Status status = object.getIntValue("result") == 1 ? Builder.Status.SUCCESS : Builder.Status.FAILURE; return Message.builder().errcode(status.getCode()).errmsg(status.getMsg()).build(); } @@ -105,9 +105,9 @@ public Message refresh(AccToken token) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/CodingProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/CodingProvider.java index aeb8acc2da..8a8cecb78e 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/CodingProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/CodingProvider.java @@ -96,9 +96,9 @@ private void checkResponse(JSONObject object) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DefaultProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DefaultProvider.java index 74622576f2..5f4aa315e5 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DefaultProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DefaultProvider.java @@ -149,7 +149,7 @@ public static String urlDecode(String value) { } /** - * string字符串转map,str格式为 {@code xxx=xxx&xxx=xxx} + * string字符串转map,str格式为 {@code xxx=xxx&xxx=xxx} * * @param accessTokenStr 待转换的字符串 * @return map @@ -223,7 +223,7 @@ public static boolean isLocalHost(String url) { * * @param appKey 平台应用的授权key * @param secret 平台应用的授权密钥 - * @param timestamp 时间戳,单位秒。API服务端允许客户端请求最大时间误差为正负5分钟。 + * @param timestamp 时间戳,单位秒 API服务端允许客户端请求最大时间误差为正负5分钟 * @param action 饿了么请求的api方法 * @param token 用户授权的token * @param parameters 加密参数 @@ -293,7 +293,7 @@ public static boolean isSupportedAuth(Context context, Complex source) { } /** - * 检查配置合法性。针对部分平台, 对redirect uri有特定要求。一般来说redirect uri都是http://,而对于facebook平台, redirect uri 必须是https的链接 + * 检查配置合法性 针对部分平台, 对redirect uri有特定要求 一般来说redirect uri都是http://,而对于facebook平台, redirect uri 必须是https的链接 * * @param context context * @param source source @@ -308,7 +308,7 @@ public static void checkcontext(Context context, Complex source) { if (Registry.FACEBOOK == source && !isHttpsProtocol(redirectUri)) { throw new InstrumentException(Builder.Status.ILLEGAL_REDIRECT_URI.getCode()); } - // 支付宝在创建回调地址时,不允许使用localhost或者127.0.0.1 + // 支付宝在创建回调地址时,不允许使用localhost或者127.0.0.1 if (Registry.ALIPAY == source && isLocalHost(redirectUri)) { throw new InstrumentException(Builder.Status.ILLEGAL_REDIRECT_URI.getCode()); } @@ -317,7 +317,7 @@ public static void checkcontext(Context context, Complex source) { /** * 校验回调传回的code *

    - * {@code v1.10.0}版本中改为传入{@code source}和{@code callback},对于不同平台使用不同参数接受code的情况统一做处理 + * {@code v1.10.0}版本中改为传入{@code source}和{@code callback},对于不同平台使用不同参数接受code的情况统一做处理 * * @param complex 当前授权平台 * @param callback 从第三方授权回调回来时传入的参数集合 @@ -354,8 +354,8 @@ public static void checkCode(Complex complex, Callback callback) { protected abstract Object getUserInfo(AccToken token); /** - * 统一的登录入口。当通过{@link DefaultProvider#authorize(String)}授权成功后,会跳转到调用方的相关回调方法中 - * 方法的入参可以使用{@code AuthCallback},{@code AuthCallback}类中封装好了OAuth2授权回调所需要的参数 + * 统一的登录入口 当通过{@link DefaultProvider#authorize(String)}授权成功后,会跳转到调用方的相关回调方法中 + * 方法的入参可以使用{@code AuthCallback},{@code AuthCallback}类中封装好了OAuth2授权回调所需要的参数 * * @param Callback 用于接收回调参数的实体 * @return AuthResponse @@ -375,7 +375,7 @@ public Message login(Callback Callback) { } /** - * 处理{@link DefaultProvider#login(Callback)} 发生异常的情况,统一响应参数 + * 处理{@link DefaultProvider#login(Callback)} 发生异常的情况,统一响应参数 * * @param e 具体的异常 * @return AuthResponse @@ -389,9 +389,9 @@ private Message responseError(Exception e) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ @@ -458,7 +458,7 @@ protected String revokeUrl(AccToken token) { } /** - * 获取state,如果为空, 则默认取当前日期的时间戳 + * 获取state,如果为空, 则默认取当前日期的时间戳 * * @param state 原始的state * @return 返回不为null的state diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DingTalkProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DingTalkProvider.java index db818695f9..3059a61176 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DingTalkProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DingTalkProvider.java @@ -87,9 +87,9 @@ protected Object getUserInfo(AccToken oauthToken) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DouyinProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DouyinProvider.java index 2b502a05a1..f7f87c4c37 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DouyinProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/DouyinProvider.java @@ -98,7 +98,7 @@ private void checkResponse(JSONObject object) { } /** - * 获取token,适用于获取access_token和刷新token + * 获取token,适用于获取access_token和刷新token * * @param accessTokenUrl 实际请求token的地址 * @return token对象 @@ -116,9 +116,9 @@ private AccToken getToken(String accessTokenUrl) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/ElemeProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/ElemeProvider.java index e364654193..41181bacd2 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/ElemeProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/ElemeProvider.java @@ -44,7 +44,7 @@ /** * 饿了么 *

    - * 注:集成的是正式环境,非沙箱环境 + * 注:集成的是正式环境,非沙箱环境 * * @author Kimi Liu * @version 5.2.2 @@ -89,7 +89,7 @@ protected Property getUserInfo(AccToken token) { Map parameters = new HashMap<>(); // 获取商户账号信息的API接口名称 String action = "eleme.user.getUser"; - // 时间戳,单位秒。API服务端允许客户端请求最大时间误差为正负5分钟。 + // 时间戳,单位秒 API服务端允许客户端请求最大时间误差为正负5分钟 final long timestamp = System.currentTimeMillis(); // 公共参数 Map metasHashMap = new HashMap<>(); diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/GitlabProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/GitlabProvider.java index 0ff4274ba3..cd8f9d2dd1 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/GitlabProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/GitlabProvider.java @@ -100,9 +100,9 @@ private void checkResponse(JSONObject object) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 2.0.1 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/GoogleProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/GoogleProvider.java index c8a7807443..ab31aecdf5 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/GoogleProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/GoogleProvider.java @@ -91,9 +91,9 @@ protected Property getUserInfo(AccToken token) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/HuaweiProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/HuaweiProvider.java index 6ee9c0ebba..43b31b2efe 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/HuaweiProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/HuaweiProvider.java @@ -144,9 +144,9 @@ private AccToken getAuthToken(Map params) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ @@ -196,7 +196,7 @@ protected String userInfoUrl(AccToken token) { } /** - * 获取用户的实际性别。华为系统中,用户的性别:1表示女,0表示男 + * 获取用户的实际性别 华为系统中,用户的性别:1表示女,0表示男 * * @param object obj * @return AuthUserGender diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/KujialeProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/KujialeProvider.java index 5bbcbaf1ee..77d06b6a1f 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/KujialeProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/KujialeProvider.java @@ -54,10 +54,10 @@ public KujialeProvider(Context context, StateCache stateCache) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * 默认只向用户请求用户信息授权 * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 2.0.1 */ @@ -69,8 +69,8 @@ public String authorize(String state) { /** * 请求授权url * - * @param state state 验证授权流程的参数,可以防止csrf - * @param scopeStr 请求用户授权时向用户显示的可进行授权的列表。如果要填写多个接口名称,请用逗号隔开 + * @param state state 验证授权流程的参数,可以防止csrf + * @param scopeStr 请求用户授权时向用户显示的可进行授权的列表 如果要填写多个接口名称,请用逗号隔开 * 参考https://open.kujiale.com/open/apps/2/docs?doc_id=95#Step1%EF%BC%9A%E8%8E%B7%E5%8F%96Authorization%20Code参数表内的scope字段 * @return authorize url */ @@ -133,7 +133,7 @@ public Property getUserInfo(AccToken token) { } /** - * 获取酷家乐的openId,此id在当前client范围内可以唯一识别授权用户 + * 获取酷家乐的openId,此id在当前client范围内可以唯一识别授权用户 * * @param token 通过{@link KujialeProvider#getAccessToken(Callback)}获取到的{@code authToken} * @return openId diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/LinkedinProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/LinkedinProvider.java index 7d6f2b0749..31997b4fc2 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/LinkedinProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/LinkedinProvider.java @@ -196,7 +196,7 @@ private void checkResponse(JSONObject object) { } /** - * 获取token,适用于获取access_token和刷新token + * 获取token,适用于获取access_token和刷新token * * @param accessTokenUrl 实际请求token的地址 * @return token对象 @@ -218,9 +218,9 @@ private AccToken getToken(String accessTokenUrl) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/MiProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/MiProvider.java index 6539753f68..c7f0abe3ad 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/MiProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/MiProvider.java @@ -130,9 +130,9 @@ public Message refresh(AccToken token) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/MicrosoftProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/MicrosoftProvider.java index b5f7312507..ed9308c824 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/MicrosoftProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/MicrosoftProvider.java @@ -62,7 +62,7 @@ protected AccToken getAccessToken(Callback Callback) { } /** - * 获取token,适用于获取access_token和刷新token + * 获取token,适用于获取access_token和刷新token * * @param accessTokenUrl 实际请求token的地址 * @return token对象 @@ -136,9 +136,9 @@ public Message refresh(AccToken token) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/PinterestProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/PinterestProvider.java index f6a6d9cacb..852e1399a0 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/PinterestProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/PinterestProvider.java @@ -93,9 +93,9 @@ private String getAvatarUrl(JSONObject userObj) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/QqProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/QqProvider.java index d2d94057ec..ae7a8820a4 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/QqProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/QqProvider.java @@ -93,8 +93,8 @@ protected Property getUserInfo(AccToken token) { } /** - * 获取QQ用户的OpenId,支持自定义是否启用查询unionid的功能,如果启用查询unionid的功能, - * 那就需要开发者先通过邮件申请unionid功能,参考链接 {@see http://wiki.connect.qq.com/unionid%E4%BB%8B%E7%BB%8D} + * 获取QQ用户的OpenId,支持自定义是否启用查询unionid的功能,如果启用查询unionid的功能, + * 那就需要开发者先通过邮件申请unionid功能,参考链接 {@see http://wiki.connect.qq.com/unionid%E4%BB%8B%E7%BB%8D} * * @param token 通过{@link QqProvider#getAccessToken(Callback)}获取到的{@code authToken} * @return openId diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/StackOverflowProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/StackOverflowProvider.java index 675fd652ee..d69c8d207e 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/StackOverflowProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/StackOverflowProvider.java @@ -90,9 +90,9 @@ protected Property getUserInfo(AccToken token) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/TaobaoProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/TaobaoProvider.java index 53656df45e..72e94a710c 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/TaobaoProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/TaobaoProvider.java @@ -81,9 +81,9 @@ protected Property getUserInfo(AccToken token) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/TencentCloudProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/TencentCloudProvider.java index 4000ecce77..4b50c4f9d1 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/TencentCloudProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/TencentCloudProvider.java @@ -96,9 +96,9 @@ private void checkResponse(JSONObject object) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/ToutiaoProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/ToutiaoProvider.java index 90b0fea321..612befe5b2 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/ToutiaoProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/ToutiaoProvider.java @@ -90,9 +90,9 @@ protected Property getUserInfo(AccToken token) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ @@ -154,24 +154,24 @@ private void checkResponse(JSONObject object) { public enum Error { /** * 0:正常; - * other:调用异常,具体异常内容见{@code desc} + * other:调用异常,具体异常内容见{@code desc} */ EC0("0", "接口调用成功"), - EC1("1", "API配置错误,未传入Client Key"), - EC2("2", "API配置错误,Client Key错误,请检查是否和开放平台的ClientKey一致"), + EC1("1", "API配置错误,未传入Client Key"), + EC2("2", "API配置错误,Client Key错误,请检查是否和开放平台的ClientKey一致"), EC3("3", "没有授权信息"), EC4("4", "响应类型错误"), EC5("5", "授权类型错误"), EC6("6", "client_secret错误"), EC7("7", "authorize_code过期"), EC8("8", "指定url的scheme不是https"), - EC9("9", "接口内部错误,请联系头条技术"), + EC9("9", "接口内部错误,请联系头条技术"), EC10("10", "access_token过期"), EC11("11", "缺少access_token"), EC12("12", "参数缺失"), EC13("13", "url错误"), EC21("21", "域名与登记域名不匹配"), - EC999("999", "未知错误,请联系头条技术"); + EC999("999", "未知错误,请联系头条技术"); private String code; private String desc; diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/WeChatEEProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/WeChatEEProvider.java index 444bb1c1d8..d8b5585f14 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/WeChatEEProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/WeChatEEProvider.java @@ -54,7 +54,7 @@ public WeChatEEProvider(Context context, StateCache stateCache) { } /** - * 微信的特殊性,此时返回的信息同时包含 openid 和 access_token + * 微信的特殊性,此时返回的信息同时包含 openid 和 access_token * * @param Callback 回调返回的参数 * @return 所有信息 @@ -77,7 +77,7 @@ protected Property getUserInfo(AccToken token) { String response = doGetUserInfo(token); JSONObject object = this.checkResponse(response); - // 返回 OpenId 或其他,均代表非当前企业用户,不支持 + // 返回 OpenId 或其他,均代表非当前企业用户,不支持 if (!object.containsKey("UserId")) { throw new InstrumentException(Builder.Status.UNIDENTIFIED_PLATFORM.getCode()); } @@ -104,7 +104,7 @@ protected Property getUserInfo(AccToken token) { * 校验请求结果 * * @param response 请求结果 - * @return 如果请求结果正常,则返回JSONObject + * @return 如果请求结果正常, 则返回JSONObject */ private JSONObject checkResponse(String response) { JSONObject object = JSONObject.parseObject(response); @@ -116,7 +116,7 @@ private JSONObject checkResponse(String response) { } /** - * 获取用户的实际性别,0表示未定义,1表示男性,2表示女性 + * 获取用户的实际性别,0表示未定义,1表示男性,2表示女性 * * @param userDetail 用户详情 * @return 用户性别 @@ -130,9 +130,9 @@ private String getRealGender(JSONObject userDetail) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/WeChatProvider.java b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/WeChatProvider.java index d4c37c3aac..f361755722 100755 --- a/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/WeChatProvider.java +++ b/bus-oauth/src/main/java/org/aoju/bus/oauth/provider/WeChatProvider.java @@ -55,7 +55,7 @@ public WeChatProvider(Context context, StateCache stateCache) { } /** - * 微信的特殊性,此时返回的信息同时包含 openid 和 access_token + * 微信的特殊性,此时返回的信息同时包含 openid 和 access_token * * @param Callback 回调返回的参数 * @return 所有信息 @@ -110,7 +110,7 @@ private void checkResponse(JSONObject object) { } /** - * 获取token,适用于获取access_token和刷新token + * 获取token,适用于获取access_token和刷新token * * @param accessTokenUrl 实际请求token的地址 * @return token对象 @@ -129,9 +129,9 @@ private AccToken getToken(String accessTokenUrl) { } /** - * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} + * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * - * @param state state 验证授权流程的参数,可以防止csrf + * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ diff --git a/bus-office/pom.xml b/bus-office/pom.xml index c0ee486a55..749fb20b38 100755 --- a/bus-office/pom.xml +++ b/bus-office/pom.xml @@ -17,7 +17,7 @@ UTF-8 UTF-8 1.8 - 3.17 + 4.1.1 2.12.0 diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/BigExcelWriter.java b/bus-office/src/main/java/org/aoju/bus/office/excel/BigExcelWriter.java index 9463eaea44..bd507ecd4c 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/BigExcelWriter.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/BigExcelWriter.java @@ -41,9 +41,9 @@ public class BigExcelWriter extends ExcelWriter { public static final int DEFAULT_WINDOW_SIZE = SXSSFWorkbook.DEFAULT_WINDOW_SIZE; /** - * 构造,默认生成xls格式的Excel文件 - * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(java.io.OutputStream)}方法写出到流 - * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 + * 构造,默认生成xls格式的Excel文件 + * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(java.io.OutputStream)}方法写出到流 + * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 */ public BigExcelWriter() { this(DEFAULT_WINDOW_SIZE); @@ -51,8 +51,8 @@ public BigExcelWriter() { /** * 构造 - * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(java.io.OutputStream)}方法写出到流 - * 若写出到文件,需要调用{@link #flush(File)} 写出到文件 + * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(java.io.OutputStream)}方法写出到流 + * 若写出到文件,需要调用{@link #flush(File)} 写出到文件 * * @param rowAccessWindowSize 在内存中的行数 */ @@ -61,9 +61,9 @@ public BigExcelWriter(int rowAccessWindowSize) { } /** - * 构造,默认写出到第一个sheet,第一个sheet名为sheet1 + * 构造,默认写出到第一个sheet,第一个sheet名为sheet1 * - * @param destFilePath 目标文件路径,可以不存在 + * @param destFilePath 目标文件路径,可以不存在 */ public BigExcelWriter(String destFilePath) { this(destFilePath, null); @@ -71,11 +71,11 @@ public BigExcelWriter(String destFilePath) { /** * 构造 - * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(java.io.OutputStream)}方法写出到流 - * 若写出到文件,需要调用{@link #flush(File)} 写出到文件 + * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(java.io.OutputStream)}方法写出到流 + * 若写出到文件,需要调用{@link #flush(File)} 写出到文件 * * @param rowAccessWindowSize 在内存中的行数 - * @param sheetName sheet名,第一个sheet名并写出到此sheet,例如sheet1 + * @param sheetName sheet名,第一个sheet名并写出到此sheet,例如sheet1 */ public BigExcelWriter(int rowAccessWindowSize, String sheetName) { this(BookUtils.createSXSSFBook(rowAccessWindowSize), sheetName); @@ -84,17 +84,17 @@ public BigExcelWriter(int rowAccessWindowSize, String sheetName) { /** * 构造 * - * @param destFilePath 目标文件路径,可以不存在 - * @param sheetName sheet名,第一个sheet名并写出到此sheet,例如sheet1 + * @param destFilePath 目标文件路径,可以不存在 + * @param sheetName sheet名,第一个sheet名并写出到此sheet,例如sheet1 */ public BigExcelWriter(String destFilePath, String sheetName) { this(FileUtils.file(destFilePath), sheetName); } /** - * 构造,默认写出到第一个sheet,第一个sheet名为sheet1 + * 构造,默认写出到第一个sheet,第一个sheet名为sheet1 * - * @param destFile 目标文件,可以不存在 + * @param destFile 目标文件,可以不存在 */ public BigExcelWriter(File destFile) { this(destFile, null); @@ -103,8 +103,8 @@ public BigExcelWriter(File destFile) { /** * 构造 * - * @param destFile 目标文件,可以不存在 - * @param sheetName sheet名,做为第一个sheet名并写出到此sheet,例如sheet1 + * @param destFile 目标文件,可以不存在 + * @param sheetName sheet名,做为第一个sheet名并写出到此sheet,例如sheet1 */ public BigExcelWriter(File destFile, String sheetName) { this(destFile.exists() ? BookUtils.createSXSSFBook(destFile) : BookUtils.createSXSSFBook(), sheetName); @@ -113,11 +113,11 @@ public BigExcelWriter(File destFile, String sheetName) { /** * 构造 - * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(java.io.OutputStream)}方法写出到流 - * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 + * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(java.io.OutputStream)}方法写出到流 + * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 * * @param workbook {@link SXSSFWorkbook} - * @param sheetName sheet名,做为第一个sheet名并写出到此sheet,例如sheet1 + * @param sheetName sheet名,做为第一个sheet名并写出到此sheet,例如sheet1 */ public BigExcelWriter(SXSSFWorkbook workbook, String sheetName) { this(BookUtils.getOrCreateSheet(workbook, sheetName)); @@ -125,8 +125,8 @@ public BigExcelWriter(SXSSFWorkbook workbook, String sheetName) { /** * 构造 - * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(java.io.OutputStream)}方法写出到流 - * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 + * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(java.io.OutputStream)}方法写出到流 + * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 * * @param sheet {@link Sheet} */ diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/BookUtils.java b/bus-office/src/main/java/org/aoju/bus/office/excel/BookUtils.java index 80cff76272..3782164ec6 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/BookUtils.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/BookUtils.java @@ -50,7 +50,7 @@ public class BookUtils { /** * 创建或加载工作簿 * - * @param excelFilePath Excel文件路径,绝对路径或相对于ClassPath路径 + * @param excelFilePath Excel文件路径,绝对路径或相对于ClassPath路径 * @return {@link Workbook} * @since 3.1.1 */ @@ -69,10 +69,10 @@ public static Workbook createBook(File excelFile) { } /** - * 创建或加载工作簿,只读模式 + * 创建或加载工作簿,只读模式 * * @param excelFile Excel文件 - * @param password Excel工作簿密码,如果无密码传{@code null} + * @param password Excel工作簿密码,如果无密码传{@code null} * @return {@link Workbook} */ public static Workbook createBook(File excelFile, String password) { @@ -115,7 +115,7 @@ public static Workbook createBook(InputStream in, String password, boolean close } /** - * 根据文件类型创建新的工作簿,文件路径 + * 根据文件类型创建新的工作簿,文件路径 * * @param isXlsx 是否为xlsx格式的Excel * @return {@link Workbook} @@ -133,7 +133,7 @@ public static Workbook createBook(boolean isXlsx) { /** * 创建或加载SXSSFWorkbook工作簿 * - * @param excelFilePath Excel文件路径,绝对路径或相对于ClassPath路径 + * @param excelFilePath Excel文件路径,绝对路径或相对于ClassPath路径 * @return {@link SXSSFWorkbook} */ public static SXSSFWorkbook createSXSSFBook(String excelFilePath) { @@ -151,10 +151,10 @@ public static SXSSFWorkbook createSXSSFBook(File excelFile) { } /** - * 创建或加载SXSSFWorkbook工作簿,只读模式 + * 创建或加载SXSSFWorkbook工作簿,只读模式 * * @param excelFile Excel文件 - * @param password Excel工作簿密码,如果无密码传{@code null} + * @param password Excel工作簿密码,如果无密码传{@code null} * @return {@link SXSSFWorkbook} */ public static SXSSFWorkbook createSXSSFBook(File excelFile, String password) { @@ -185,7 +185,7 @@ public static SXSSFWorkbook createSXSSFBook(InputStream in, String password, boo } /** - * 创建SXSSFWorkbook,用于大批量数据写出 + * 创建SXSSFWorkbook,用于大批量数据写出 * * @return {@link SXSSFWorkbook} */ @@ -194,7 +194,7 @@ public static SXSSFWorkbook createSXSSFBook() { } /** - * 创建SXSSFWorkbook,用于大批量数据写出 + * 创建SXSSFWorkbook,用于大批量数据写出 * * @param rowAccessWindowSize 在内存中的行数 * @return {@link Workbook} @@ -204,7 +204,7 @@ public static SXSSFWorkbook createSXSSFBook(int rowAccessWindowSize) { } /** - * 将Excel Workbook刷出到输出流,不关闭流 + * 将Excel Workbook刷出到输出流,不关闭流 * * @param book {@link Workbook} * @param out 输出流 @@ -221,7 +221,7 @@ public static void writeBook(Workbook book, OutputStream out) throws InstrumentE /** * 获取或者创建sheet表 - * 如果sheet表在Workbook中已经存在,则获取之,否则创建之 + * 如果sheet表在Workbook中已经存在,则获取之,否则创建之 * * @param book 工作簿{@link Workbook} * @param sheetName 工作表名 diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/CellUtils.java b/bus-office/src/main/java/org/aoju/bus/office/excel/CellUtils.java index 26c8faa224..d813c54d68 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/CellUtils.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/CellUtils.java @@ -33,6 +33,11 @@ import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.RegionUtil; +import java.math.BigDecimal; +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.temporal.TemporalAccessor; import java.util.Calendar; import java.util.Date; @@ -49,8 +54,8 @@ public class CellUtils { * 获取单元格值 * * @param cell {@link Cell}单元格 - * @param isTrimCellValue 如果单元格类型为字符串,是否去掉两边空白符 - * @return 值,类型可能为:Date、Double、Boolean、String + * @param isTrimCellValue 如果单元格类型为字符串,是否去掉两边空白符 + * @return 值, 类型可能为:Date、Double、Boolean、String */ public static Object getCellValue(Cell cell, boolean isTrimCellValue) { if (null == cell) { @@ -63,8 +68,8 @@ public static Object getCellValue(Cell cell, boolean isTrimCellValue) { * 获取单元格值 * * @param cell {@link Cell}单元格 - * @param cellEditor 单元格值编辑器。可以通过此编辑器对单元格值做自定义操作 - * @return 值,类型可能为:Date、Double、Boolean、String + * @param cellEditor 单元格值编辑器 可以通过此编辑器对单元格值做自定义操作 + * @return 值, 类型可能为:Date、Double、Boolean、String */ public static Object getCellValue(Cell cell, CellEditor cellEditor) { if (null == cell) { @@ -78,8 +83,8 @@ public static Object getCellValue(Cell cell, CellEditor cellEditor) { * * @param cell {@link Cell}单元格 * @param cellType 单元格值类型{@link CellType}枚举 - * @param isTrimCellValue 如果单元格类型为字符串,是否去掉两边空白符 - * @return 值,类型可能为:Date、Double、Boolean、String + * @param isTrimCellValue 如果单元格类型为字符串,是否去掉两边空白符 + * @return 值, 类型可能为:Date、Double、Boolean、String */ public static Object getCellValue(Cell cell, CellType cellType, final boolean isTrimCellValue) { return getCellValue(cell, cellType, isTrimCellValue ? new TrimEditor() : null); @@ -87,12 +92,12 @@ public static Object getCellValue(Cell cell, CellType cellType, final boolean is /** * 获取单元格值 - * 如果单元格值为数字格式,则判断其格式中是否有小数部分,无则返回Long类型,否则返回Double类型 + * 如果单元格值为数字格式,则判断其格式中是否有小数部分,无则返回Long类型,否则返回Double类型 * * @param cell {@link Cell}单元格 - * @param cellType 单元格值类型{@link CellType}枚举,如果为{@code null}默认使用cell的类型 - * @param cellEditor 单元格值编辑器。可以通过此编辑器对单元格值做自定义操作 - * @return 值,类型可能为:Date、Double、Boolean、String + * @param cellType 单元格值类型{@link CellType}枚举,如果为{@code null}默认使用cell的类型 + * @param cellEditor 单元格值编辑器 可以通过此编辑器对单元格值做自定义操作 + * @return 值, 类型可能为:Date、Double、Boolean、String */ public static Object getCellValue(Cell cell, CellType cellType, CellEditor cellEditor) { if (null == cell) { @@ -124,27 +129,32 @@ public static Object getCellValue(Cell cell, CellType cellType, CellEditor cellE default: value = cell.getStringCellValue(); } - return null == cellEditor ? value : cellEditor.edit(cell, value); } /** * 设置单元格值 * 根据传入的styleSet自动匹配样式 - * 当为头部样式时默认赋值头部样式,但是头部中如果有数字、日期等类型,将按照数字、日期样式设置 + * 当为头部样式时默认赋值头部样式,但是头部中如果有数字、日期等类型,将按照数字、日期样式设置 * * @param cell 单元格 * @param value 值 - * @param styleSet 单元格样式集,包括日期等样式 + * @param styleSet 单元格样式集,包括日期等样式 * @param isHeader 是否为标题单元格 */ public static void setCellValue(Cell cell, Object value, StyleSet styleSet, boolean isHeader) { - final CellStyle headCellStyle = styleSet.getHeadCellStyle(); - final CellStyle cellStyle = styleSet.getCellStyle(); - if (isHeader && null != headCellStyle) { - cell.setCellStyle(headCellStyle); - } else if (null != cellStyle) { - cell.setCellStyle(cellStyle); + if (null == cell) { + return; + } + + if (null != styleSet) { + final CellStyle headCellStyle = styleSet.getHeadCellStyle(); + final CellStyle cellStyle = styleSet.getCellStyle(); + if (isHeader && null != headCellStyle) { + cell.setCellStyle(headCellStyle); + } else if (null != cellStyle) { + cell.setCellStyle(cellStyle); + } } if (null == value) { @@ -157,14 +167,28 @@ public static void setCellValue(Cell cell, Object value, StyleSet styleSet, bool cell.setCellStyle(styleSet.getCellStyleForDate()); } cell.setCellValue((Date) value); + } else if (value instanceof TemporalAccessor) { + if (null != styleSet && null != styleSet.getCellStyleForDate()) { + cell.setCellStyle(styleSet.getCellStyleForDate()); + } + if (value instanceof Instant) { + cell.setCellValue(Date.from((Instant) value)); + } else if (value instanceof LocalDateTime) { + cell.setCellValue((LocalDateTime) value); + } else if (value instanceof LocalDate) { + cell.setCellValue((LocalDate) value); + } } else if (value instanceof Calendar) { + if (null != styleSet && null != styleSet.getCellStyleForDate()) { + cell.setCellStyle(styleSet.getCellStyleForDate()); + } cell.setCellValue((Calendar) value); } else if (value instanceof Boolean) { cell.setCellValue((Boolean) value); } else if (value instanceof RichTextString) { cell.setCellValue((RichTextString) value); } else if (value instanceof Number) { - if ((value instanceof Double || value instanceof Float) && null != styleSet && null != styleSet.getCellStyleForNumber()) { + if ((value instanceof Double || value instanceof Float || value instanceof BigDecimal) && null != styleSet && null != styleSet.getCellStyleForNumber()) { cell.setCellStyle(styleSet.getCellStyleForNumber()); } cell.setCellValue(((Number) value).doubleValue()); @@ -209,14 +233,14 @@ public static boolean isMergedRegion(Sheet sheet, int row, int column) { } /** - * 合并单元格,可以根据设置的值来合并行和列 + * 合并单元格,可以根据设置的值来合并行和列 * * @param sheet 表对象 - * @param firstRow 起始行,0开始 - * @param lastRow 结束行,0开始 - * @param firstColumn 起始列,0开始 - * @param lastColumn 结束列,0开始 - * @param cellStyle 单元格样式,只提取边框样式 + * @param firstRow 起始行,0开始 + * @param lastRow 结束行,0开始 + * @param firstColumn 起始列,0开始 + * @param lastColumn 结束列,0开始 + * @param cellStyle 单元格样式,只提取边框样式 * @return 合并后的单元格号 */ public static int mergingCells(Sheet sheet, int firstRow, int lastRow, int firstColumn, int lastColumn, CellStyle cellStyle) { @@ -240,7 +264,7 @@ public static int mergingCells(Sheet sheet, int firstRow, int lastRow, int first * 获取数字类型的单元格值 * * @param cell 单元格 - * @return 单元格值,可能为Long、Double、Date + * @return 单元格值, 可能为Long、Double、Date */ private static Object getNumericValue(Cell cell) { final double value = cell.getNumericCellValue(); @@ -261,7 +285,7 @@ private static Object getNumericValue(Cell cell) { if (null != format && format.indexOf(Symbol.C_DOT) < 0) { final long longPart = (long) value; if (longPart == value) { - // 对于无小数部分的数字类型,转为Long + // 对于无小数部分的数字类型,转为Long return longPart; } } diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelBase.java b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelBase.java index 970985848f..8d4266426e 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelBase.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelBase.java @@ -32,9 +32,9 @@ import java.util.List; /** - * Excel基础类,用于抽象ExcelWriter和ExcelReader中共用部分的对象和方法 + * Excel基础类,用于抽象ExcelWriter和ExcelReader中共用部分的对象和方法 * - * @param 子类类型,用于返回this + * @param 子类类型,用于返回this * @author Kimi Liu * @version 5.2.2 * @since JDK 1.8+ @@ -121,8 +121,8 @@ public Sheet getSheet() { } /** - * 自定义需要读取或写出的Sheet,如果给定的sheet不存在,创建之。 - * 在读取中,此方法用于切换读取的sheet,在写出时,此方法用于新建或者切换sheet。 + * 自定义需要读取或写出的Sheet,如果给定的sheet不存在,创建之 + * 在读取中,此方法用于切换读取的sheet,在写出时,此方法用于新建或者切换sheet * * @param sheetName sheet名 * @return this @@ -136,10 +136,10 @@ public T setSheet(String sheetName) { } /** - * 自定义需要读取或写出的Sheet,如果给定的sheet不存在,创建之(命名为默认) - * 在读取中,此方法用于切换读取的sheet,在写出时,此方法用于新建或者切换sheet + * 自定义需要读取或写出的Sheet,如果给定的sheet不存在,创建之(命名为默认) + * 在读取中,此方法用于切换读取的sheet,在写出时,此方法用于新建或者切换sheet * - * @param sheetIndex sheet序号,从0开始计数 + * @param sheetIndex sheet序号,从0开始计数 * @return this */ public T setSheet(int sheetIndex) { @@ -155,10 +155,10 @@ public T setSheet(int sheetIndex) { } /** - * 获取指定坐标单元格,单元格不存在时返回null + * 获取指定坐标单元格,单元格不存在时返回null * - * @param x X坐标,从0计数,既列号 - * @param y Y坐标,从0计数,既行号 + * @param x X坐标,从0计数,既列号 + * @param y Y坐标,从0计数,既行号 * @return {@link Cell} */ public Cell getCell(int x, int y) { @@ -168,8 +168,8 @@ public Cell getCell(int x, int y) { /** * 获取或创建指定坐标单元格 * - * @param x X坐标,从0计数,既列号 - * @param y Y坐标,从0计数,既行号 + * @param x X坐标,从0计数,既列号 + * @param y Y坐标,从0计数,既行号 * @return {@link Cell} */ public Cell getOrCreateCell(int x, int y) { @@ -177,10 +177,10 @@ public Cell getOrCreateCell(int x, int y) { } /** - * 获取指定坐标单元格,如果isCreateIfNotExist为false,则在单元格不存在时返回null + * 获取指定坐标单元格,如果isCreateIfNotExist为false,则在单元格不存在时返回null * - * @param x X坐标,从0计数,既列号 - * @param y Y坐标,从0计数,既行号 + * @param x X坐标,从0计数,既列号 + * @param y Y坐标,从0计数,既行号 * @param isCreateIfNotExist 单元格不存在时是否创建 * @return {@link Cell} */ @@ -195,7 +195,7 @@ public Cell getCell(int x, int y, boolean isCreateIfNotExist) { /** * 获取或者创建行 * - * @param y Y坐标,从0计数,既行号 + * @param y Y坐标,从0计数,既行号 * @return {@link Row} */ public Row getOrCreateRow(int y) { @@ -203,10 +203,10 @@ public Row getOrCreateRow(int y) { } /** - * 为指定单元格获取或者创建样式,返回样式后可以设置样式内容 + * 为指定单元格获取或者创建样式,返回样式后可以设置样式内容 * - * @param x X坐标,从0计数,既列号 - * @param y Y坐标,从0计数,既行号 + * @param x X坐标,从0计数,既列号 + * @param y Y坐标,从0计数,既行号 * @return {@link CellStyle} */ public CellStyle getOrCreateCellStyle(int x, int y) { @@ -220,9 +220,9 @@ public CellStyle getOrCreateCellStyle(int x, int y) { } /** - * 获取或创建某一行的样式,返回样式后可以设置样式内容 + * 获取或创建某一行的样式,返回样式后可以设置样式内容 * - * @param y Y坐标,从0计数,既行号 + * @param y Y坐标,从0计数,既行号 * @return {@link CellStyle} */ public CellStyle getOrCreateRowStyle(int y) { @@ -236,9 +236,9 @@ public CellStyle getOrCreateRowStyle(int y) { } /** - * 获取或创建某一行的样式,返回样式后可以设置样式内容 + * 获取或创建某一行的样式,返回样式后可以设置样式内容 * - * @param x X坐标,从0计数,既列号 + * @param x X坐标,从0计数,既列号 * @return {@link CellStyle} */ public CellStyle getOrCreateColumnStyle(int x) { @@ -251,7 +251,7 @@ public CellStyle getOrCreateColumnStyle(int x) { } /** - * 获取总行数,计算方法为: + * 获取总行数,计算方法为: * *

          * 最后一行序号 + 1
    @@ -264,7 +264,7 @@ public int getRowCount() {
         }
     
         /**
    -     * 获取有记录的行数,计算方法为:
    +     * 获取有记录的行数,计算方法为:
          *
          * 
          * 最后一行序号 - 第一行序号 + 1
    @@ -277,7 +277,7 @@ public int getPhysicalRowCount() {
         }
     
         /**
    -     * 获取第一行总列数,计算方法为:
    +     * 获取第一行总列数,计算方法为:
          *
          * 
          * 最后一列序号 + 1
    @@ -290,7 +290,7 @@ public int getColumnCount() {
         }
     
         /**
    -     * 获取总列数,计算方法为:
    +     * 获取总列数,计算方法为:
          *
          * 
          * 最后一列序号 + 1
    @@ -305,7 +305,7 @@ public int getColumnCount(int rowNum) {
     
         /**
          * 关闭工作簿
    -     * 如果用户设定了目标文件,先写出目标文件后给关闭工作簿
    +     * 如果用户设定了目标文件,先写出目标文件后给关闭工作簿
          */
         @Override
         public void close() {
    diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelPicUtils.java b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelPicUtils.java
    index 07d6edd444..f70ee62875 100755
    --- a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelPicUtils.java
    +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelPicUtils.java
    @@ -26,8 +26,8 @@
     import org.aoju.bus.core.lang.Assert;
     import org.aoju.bus.core.utils.CollUtils;
     import org.aoju.bus.core.utils.StringUtils;
    -import org.apache.poi.POIXMLDocumentPart;
     import org.apache.poi.hssf.usermodel.*;
    +import org.apache.poi.ooxml.POIXMLDocumentPart;
     import org.apache.poi.ss.usermodel.PictureData;
     import org.apache.poi.ss.usermodel.Workbook;
     import org.apache.poi.xssf.usermodel.*;
    @@ -51,7 +51,7 @@ public class ExcelPicUtils {
          *
          * @param workbook   工作簿{@link Workbook}
          * @param sheetIndex sheet的索引
    -     * @return 图片映射,键格式:行_列,值:{@link PictureData}
    +     * @return 图片映射, 键格式:行_列,值:{@link PictureData}
          */
         public static Map getPicMap(Workbook workbook, int sheetIndex) {
             Assert.notNull(workbook, "Workbook must be not null !");
    @@ -73,7 +73,7 @@ public static Map getPicMap(Workbook workbook, int sheetInd
          *
          * @param workbook   工作簿{@link Workbook}
          * @param sheetIndex sheet的索引
    -     * @return 图片映射,键格式:行_列,值:{@link PictureData}
    +     * @return 图片映射, 键格式:行_列,值:{@link PictureData}
          */
         private static Map getPicMapXls(HSSFWorkbook workbook, int sheetIndex) {
             final Map picMap = new HashMap<>();
    @@ -98,7 +98,7 @@ private static Map getPicMapXls(HSSFWorkbook workbook, int
          *
          * @param workbook   工作簿{@link Workbook}
          * @param sheetIndex sheet的索引
    -     * @return 图片映射,键格式:行_列,值:{@link PictureData}
    +     * @return 图片映射, 键格式:行_列,值:{@link PictureData}
          */
         private static Map getPicMapXlsx(XSSFWorkbook workbook, int sheetIndex) {
             final Map sheetIndexPicMap = new HashMap();
    diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelReader.java b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelReader.java
    index 47caf20eed..2c2f8c2833 100755
    --- a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelReader.java
    +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelReader.java
    @@ -67,8 +67,8 @@ public class ExcelReader extends ExcelBase {
         /**
          * 构造
          *
    -     * @param excelFilePath Excel文件路径,绝对路径或相对于ClassPath路径
    -     * @param sheetIndex    sheet序号,0表示第一个sheet
    +     * @param excelFilePath Excel文件路径,绝对路径或相对于ClassPath路径
    +     * @param sheetIndex    sheet序号,0表示第一个sheet
          */
         public ExcelReader(String excelFilePath, int sheetIndex) {
             this(FileUtils.file(excelFilePath), sheetIndex);
    @@ -78,7 +78,7 @@ public ExcelReader(String excelFilePath, int sheetIndex) {
          * 构造
          *
          * @param bookFile   Excel文件
    -     * @param sheetIndex sheet序号,0表示第一个sheet
    +     * @param sheetIndex sheet序号,0表示第一个sheet
          */
         public ExcelReader(File bookFile, int sheetIndex) {
             this(BookUtils.createBook(bookFile), sheetIndex);
    @@ -88,7 +88,7 @@ public ExcelReader(File bookFile, int sheetIndex) {
          * 构造
          *
          * @param bookFile  Excel文件
    -     * @param sheetName sheet名,第一个默认是sheet1
    +     * @param sheetName sheet名,第一个默认是sheet1
          */
         public ExcelReader(File bookFile, String sheetName) {
             this(BookUtils.createBook(bookFile), sheetName);
    @@ -98,7 +98,7 @@ public ExcelReader(File bookFile, String sheetName) {
          * 构造
          *
          * @param bookStream     Excel文件的流
    -     * @param sheetIndex     sheet序号,0表示第一个sheet
    +     * @param sheetIndex     sheet序号,0表示第一个sheet
          * @param closeAfterRead 读取结束是否关闭流
          */
         public ExcelReader(InputStream bookStream, int sheetIndex, boolean closeAfterRead) {
    @@ -109,7 +109,7 @@ public ExcelReader(InputStream bookStream, int sheetIndex, boolean closeAfterRea
          * 构造
          *
          * @param bookStream     Excel文件的流
    -     * @param sheetName      sheet名,第一个默认是sheet1
    +     * @param sheetName      sheet名,第一个默认是sheet1
          * @param closeAfterRead 读取结束是否关闭流
          */
         public ExcelReader(InputStream bookStream, String sheetName, boolean closeAfterRead) {
    @@ -120,7 +120,7 @@ public ExcelReader(InputStream bookStream, String sheetName, boolean closeAfterR
          * 构造
          *
          * @param book       {@link Workbook} 表示一个Excel文件
    -     * @param sheetIndex sheet序号,0表示第一个sheet
    +     * @param sheetIndex sheet序号,0表示第一个sheet
          */
         public ExcelReader(Workbook book, int sheetIndex) {
             this(book.getSheetAt(sheetIndex));
    @@ -130,7 +130,7 @@ public ExcelReader(Workbook book, int sheetIndex) {
          * 构造
          *
          * @param book      {@link Workbook} 表示一个Excel文件
    -     * @param sheetName sheet名,第一个默认是sheet1
    +     * @param sheetName sheet名,第一个默认是sheet1
          */
         public ExcelReader(Workbook book, String sheetName) {
             this(book.getSheet(sheetName));
    @@ -167,7 +167,7 @@ public ExcelReader setIgnoreEmptyRow(boolean ignoreEmptyRow) {
     
         /**
          * 设置单元格值处理逻辑
    -     * 当Excel中的值并不能满足我们的读取要求时,通过传入一个编辑接口,可以对单元格值自定义,例如对数字和日期类型值转换为字符串等
    +     * 当Excel中的值并不能满足我们的读取要求时,通过传入一个编辑接口,可以对单元格值自定义,例如对数字和日期类型值转换为字符串等
          *
          * @param cellEditor 单元格值处理接口
          * @return this
    @@ -223,7 +223,7 @@ public ExcelReader removeHeaderAlias(String header) {
         /**
          * 读取工作簿中指定的Sheet的所有行列数据
          *
    -     * @return 行的集合,一行使用List表示
    +     * @return 行的集合, 一行使用List表示
          */
         public List> read() {
             return read(0);
    @@ -232,8 +232,8 @@ public List> read() {
         /**
          * 读取工作簿中指定的Sheet
          *
    -     * @param startRowIndex 起始行(包含,从0开始计数)
    -     * @return 行的集合,一行使用List表示
    +     * @param startRowIndex 起始行(包含,从0开始计数)
    +     * @return 行的集合, 一行使用List表示
          */
         public List> read(int startRowIndex) {
             return read(startRowIndex, Integer.MAX_VALUE);
    @@ -242,9 +242,9 @@ public List> read(int startRowIndex) {
         /**
          * 读取工作簿中指定的Sheet
          *
    -     * @param startRowIndex 起始行(包含,从0开始计数)
    -     * @param endRowIndex   结束行(包含,从0开始计数)
    -     * @return 行的集合,一行使用List表示
    +     * @param startRowIndex 起始行(包含,从0开始计数)
    +     * @param endRowIndex   结束行(包含,从0开始计数)
    +     * @return 行的集合, 一行使用List表示
          */
         public List> read(int startRowIndex, int endRowIndex) {
             checkNotClosed();
    @@ -273,8 +273,8 @@ public List> read(int startRowIndex, int endRowIndex) {
         }
     
         /**
    -     * 读取Excel为Map的列表,读取所有行,默认第一行做为标题,数据从第二行开始
    -     * Map表示一行,标题为key,单元格内容为value
    +     * 读取Excel为Map的列表,读取所有行,默认第一行做为标题,数据从第二行开始
    +     * Map表示一行,标题为key,单元格内容为value
          *
          * @return Map的列表
          */
    @@ -284,11 +284,11 @@ public List> readAll() {
     
         /**
          * 读取Excel为Map的列表
    -     * Map表示一行,标题为key,单元格内容为value
    +     * Map表示一行,标题为key,单元格内容为value
          *
    -     * @param headerRowIndex 标题所在行,如果标题行在读取的内容行中间,这行做为数据将忽略
    -     * @param startRowIndex  起始行(包含,从0开始计数)
    -     * @param endRowIndex    读取结束行(包含,从0开始计数)
    +     * @param headerRowIndex 标题所在行,如果标题行在读取的内容行中间,这行做为数据将忽略
    +     * @param startRowIndex  起始行(包含,从0开始计数)
    +     * @param endRowIndex    读取结束行(包含,从0开始计数)
          * @return Map的列表
          */
         public List> read(int headerRowIndex, int startRowIndex, int endRowIndex) {
    @@ -325,7 +325,7 @@ public List> read(int headerRowIndex, int startRowIndex, int
         }
     
         /**
    -     * 读取Excel为Bean的列表,读取所有行,默认第一行做为标题,数据从第二行开始
    +     * 读取Excel为Bean的列表,读取所有行,默认第一行做为标题,数据从第二行开始
          *
          * @param       Bean类型
          * @param beanType 每行对应Bean的类型
    @@ -339,8 +339,8 @@ public  List readAll(Class beanType) {
          * 读取Excel为Bean的列表
          *
          * @param             Bean类型
    -     * @param headerRowIndex 标题所在行,如果标题行在读取的内容行中间,这行做为数据将忽略,,从0开始计数
    -     * @param startRowIndex  起始行(包含,从0开始计数)
    +     * @param headerRowIndex 标题所在行,如果标题行在读取的内容行中间,这行做为数据将忽略,,从0开始计数
    +     * @param startRowIndex  起始行(包含,从0开始计数)
          * @param beanType       每行对应Bean的类型
          * @return Map的列表
          */
    @@ -352,9 +352,9 @@ public  List read(int headerRowIndex, int startRowIndex, Class beanType
          * 读取Excel为Bean的列表
          *
          * @param             Bean类型
    -     * @param headerRowIndex 标题所在行,如果标题行在读取的内容行中间,这行做为数据将忽略,,从0开始计数
    -     * @param startRowIndex  起始行(包含,从0开始计数)
    -     * @param endRowIndex    读取结束行(包含,从0开始计数)
    +     * @param headerRowIndex 标题所在行,如果标题行在读取的内容行中间,这行做为数据将忽略,,从0开始计数
    +     * @param startRowIndex  起始行(包含,从0开始计数)
    +     * @param endRowIndex    读取结束行(包含,从0开始计数)
          * @param beanType       每行对应Bean的类型
          * @return Map的列表
          */
    @@ -404,7 +404,7 @@ public ExcelExtractor getExtractor() {
         /**
          * 读取某一行数据
          *
    -     * @param rowIndex 行号,从0开始
    +     * @param rowIndex 行号,从0开始
          * @return 一行数据
          */
         public List readRow(int rowIndex) {
    @@ -414,9 +414,9 @@ public List readRow(int rowIndex) {
         /**
          * 读取某个单元格的值
          *
    -     * @param x X坐标,从0计数,既列号
    -     * @param y Y坐标,从0计数,既行号
    -     * @return 值,如果单元格无值返回null
    +     * @param x X坐标,从0计数,既列号
    +     * @param y Y坐标,从0计数,既行号
    +     * @return 值, 如果单元格无值返回null
          */
         public Object readCellValue(int x, int y) {
             return CellUtils.getCellValue(getCell(x, y), this.cellEditor);
    @@ -424,7 +424,7 @@ public Object readCellValue(int x, int y) {
     
         /**
          * 获取Excel写出器
    -     * 在读取Excel并做一定编辑后,获取写出器写出
    +     * 在读取Excel并做一定编辑后,获取写出器写出
          *
          * @return {@link ExcelWriter}
          */
    @@ -443,7 +443,7 @@ private List readRow(Row row) {
         }
     
         /**
    -     * 转换标题别名,如果没有别名则使用原标题,当标题为空时,列号对应的字母便是header
    +     * 转换标题别名,如果没有别名则使用原标题,当标题为空时,列号对应的字母便是header
          *
          * @param headerList 原标题列表
          * @return 转换别名列表
    @@ -462,10 +462,10 @@ private List aliasHeader(List headerList) {
         }
     
         /**
    -     * 转换标题别名,如果没有别名则使用原标题,当标题为空时,列号对应的字母便是header
    +     * 转换标题别名,如果没有别名则使用原标题,当标题为空时,列号对应的字母便是header
          *
          * @param headerObj 原标题
    -     * @param index     标题所在列号,当标题为空时,列号对应的字母便是header
    +     * @param index     标题所在列号,当标题为空时,列号对应的字母便是header
          * @return 转换别名列表
          */
         private String aliasHeader(Object headerObj, int index) {
    diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelSaxUtils.java b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelSaxUtils.java
    index 4145fb26ff..ea4c7d98bf 100755
    --- a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelSaxUtils.java
    +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelSaxUtils.java
    @@ -125,24 +125,24 @@ public static String formatCellContent(String value, int numFmtIndex, String num
         /**
          * 计算两个单元格之间的单元格数目(同一行)
          *
    -     * @param preRef 前一个单元格位置,例如A1
    -     * @param ref    当前单元格位置,例如A8
    +     * @param preRef 前一个单元格位置,例如A1
    +     * @param ref    当前单元格位置,例如A8
          * @return 同一行中两个单元格之间的空单元格数
          */
         public static int countNullCell(String preRef, String ref) {
    -        // excel2007最大行数是1048576,最大列数是16384,最后一列列名是XFD
    -        // 数字代表列,去掉列信息
    +        // excel2007最大行数是1048576,最大列数是16384,最后一列列名是XFD
    +        // 数字代表列,去掉列信息
             String preXfd = StringUtils.nullToDefault(preRef, "@").replaceAll("\\d+", "");
             String xfd = StringUtils.nullToDefault(ref, "@").replaceAll("\\d+", "");
     
    -        // A表示65,@表示64,如果A算作1,那@代表0
    +        // A表示65,@表示64,如果A算作1,那@代表0
             // 填充最大位数3
             preXfd = StringUtils.fillBefore(preXfd, CELL_FILL_CHAR, MAX_CELL_BIT);
             xfd = StringUtils.fillBefore(xfd, CELL_FILL_CHAR, MAX_CELL_BIT);
     
             char[] preLetter = preXfd.toCharArray();
             char[] letter = xfd.toCharArray();
    -        // 用字母表示则最多三位,每26个字母进一位
    +        // 用字母表示则最多三位,每26个字母进一位
             int res = (letter[0] - preLetter[0]) * 26 * 26 + (letter[1] - preLetter[1]) * 26 + (letter[2] - preLetter[2]);
             return res - 1;
         }
    @@ -162,7 +162,7 @@ private static DateTime getDateValue(String value) {
          *
          * @param value        值
          * @param numFmtString 格式
    -     * @return 数字,可以是Double、Long
    +     * @return 数字, 可以是Double、Long
          */
         private static Number getNumberValue(String value, String numFmtString) {
             if (StringUtils.isBlank(value)) {
    @@ -173,7 +173,7 @@ private static Number getNumberValue(String value, String numFmtString) {
             if (null != numFmtString && numFmtString.indexOf(Symbol.C_DOT) < 0) {
                 final long longPart = (long) numValue;
                 if (longPart == numValue) {
    -                // 对于无小数部分的数字类型,转为Long
    +                // 对于无小数部分的数字类型,转为Long
                     return longPart;
                 }
             }
    diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelUtils.java b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelUtils.java
    index eb9dea98c7..6f0e92c9a3 100755
    --- a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelUtils.java
    +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelUtils.java
    @@ -47,7 +47,7 @@
     public class ExcelUtils {
     
         /**
    -     * 通过Sax方式读取Excel,同时支持03和07格式
    +     * 通过Sax方式读取Excel,同时支持03和07格式
          *
          * @param path       Excel文件路径
          * @param sheetIndex sheet序号
    @@ -65,7 +65,7 @@ public static void readBySax(String path, int sheetIndex, RowHandler rowHandler)
         }
     
         /**
    -     * 通过Sax方式读取Excel,同时支持03和07格式
    +     * 通过Sax方式读取Excel,同时支持03和07格式
          *
          * @param file       Excel文件
          * @param sheetIndex sheet序号
    @@ -83,7 +83,7 @@ public static void readBySax(File file, int sheetIndex, RowHandler rowHandler) {
         }
     
         /**
    -     * 通过Sax方式读取Excel,同时支持03和07格式
    +     * 通过Sax方式读取Excel,同时支持03和07格式
          *
          * @param in         Excel流
          * @param sheetIndex sheet序号
    @@ -103,7 +103,7 @@ public static void readBySax(InputStream in, int sheetIndex, RowHandler rowHandl
          * Sax方式读取Excel07
          *
          * @param in         输入流
    -     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
    +     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
          * @param rowHandler 行处理器
          * @return {@link Excel07SaxReader}
          * @since 5.2.2
    @@ -120,7 +120,7 @@ public static Excel07SaxReader read07BySax(InputStream in, int sheetIndex, RowHa
          * Sax方式读取Excel07
          *
          * @param file       文件
    -     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
    +     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
          * @param rowHandler 行处理器
          * @return {@link Excel07SaxReader}
          * @since 5.2.2
    @@ -137,7 +137,7 @@ public static Excel07SaxReader read07BySax(File file, int sheetIndex, RowHandler
          * Sax方式读取Excel07
          *
          * @param path       路径
    -     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
    +     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
          * @param rowHandler 行处理器
          * @return {@link Excel07SaxReader}
          * @since 5.2.2
    @@ -154,7 +154,7 @@ public static Excel07SaxReader read07BySax(String path, int sheetIndex, RowHandl
          * Sax方式读取Excel03
          *
          * @param in         输入流
    -     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
    +     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
          * @param rowHandler 行处理器
          * @return {@link Excel07SaxReader}
          * @since 5.2.2
    @@ -171,7 +171,7 @@ public static Excel03SaxReader read03BySax(InputStream in, int sheetIndex, RowHa
          * Sax方式读取Excel03
          *
          * @param file       文件
    -     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
    +     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
          * @param rowHandler 行处理器
          * @return {@link Excel03SaxReader}
          * @since 5.2.2
    @@ -188,7 +188,7 @@ public static Excel03SaxReader read03BySax(File file, int sheetIndex, RowHandler
          * Sax方式读取Excel03
          *
          * @param path       路径
    -     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
    +     * @param sheetIndex Sheet索引,-1表示全部Sheet, 0表示第一个Sheet
          * @param rowHandler 行处理器
          * @return {@link Excel03SaxReader}
          * @since 5.2.2
    @@ -202,10 +202,10 @@ public static Excel03SaxReader read03BySax(String path, int sheetIndex, RowHandl
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
          * 默认调用第一个sheet
          *
    -     * @param bookFilePath Excel文件路径,绝对路径或相对于ClassPath路径
    +     * @param bookFilePath Excel文件路径,绝对路径或相对于ClassPath路径
          * @return {@link ExcelReader}
          * @since 3.1.1
          */
    @@ -214,7 +214,7 @@ public static ExcelReader getReader(String bookFilePath) {
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
          * 默认调用第一个sheet
          *
          * @param bookFile Excel文件
    @@ -225,10 +225,10 @@ public static ExcelReader getReader(File bookFile) {
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
          *
    -     * @param bookFilePath Excel文件路径,绝对路径或相对于ClassPath路径
    -     * @param sheetIndex   sheet序号,0表示第一个sheet
    +     * @param bookFilePath Excel文件路径,绝对路径或相对于ClassPath路径
    +     * @param sheetIndex   sheet序号,0表示第一个sheet
          * @return {@link ExcelReader}
          * @since 3.1.1
          */
    @@ -241,10 +241,10 @@ public static ExcelReader getReader(String bookFilePath, int sheetIndex) {
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
          *
          * @param bookFile   Excel文件
    -     * @param sheetIndex sheet序号,0表示第一个sheet
    +     * @param sheetIndex sheet序号,0表示第一个sheet
          * @return {@link ExcelReader}
          */
         public static ExcelReader getReader(File bookFile, int sheetIndex) {
    @@ -256,10 +256,10 @@ public static ExcelReader getReader(File bookFile, int sheetIndex) {
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
          *
          * @param bookFile  Excel文件
    -     * @param sheetName sheet名,第一个默认是sheet1
    +     * @param sheetName sheet名,第一个默认是sheet1
          * @return {@link ExcelReader}
          */
         public static ExcelReader getReader(File bookFile, String sheetName) {
    @@ -271,8 +271,8 @@ public static ExcelReader getReader(File bookFile, String sheetName) {
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    -     * 默认调用第一个sheet,读取结束自动关闭流
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 默认调用第一个sheet,读取结束自动关闭流
          *
          * @param bookStream Excel文件的流
          * @return {@link ExcelReader}
    @@ -282,7 +282,7 @@ public static ExcelReader getReader(InputStream bookStream) {
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
          * 默认调用第一个sheet
          *
          * @param bookStream     Excel文件的流
    @@ -298,11 +298,11 @@ public static ExcelReader getReader(InputStream bookStream, boolean closeAfterRe
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
          * 读取结束自动关闭流
          *
          * @param bookStream Excel文件的流
    -     * @param sheetIndex sheet序号,0表示第一个sheet
    +     * @param sheetIndex sheet序号,0表示第一个sheet
          * @return {@link ExcelReader}
          */
         public static ExcelReader getReader(InputStream bookStream, int sheetIndex) {
    @@ -314,10 +314,10 @@ public static ExcelReader getReader(InputStream bookStream, int sheetIndex) {
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
          *
          * @param bookStream     Excel文件的流
    -     * @param sheetIndex     sheet序号,0表示第一个sheet
    +     * @param sheetIndex     sheet序号,0表示第一个sheet
          * @param closeAfterRead 读取结束是否关闭流
          * @return {@link ExcelReader}
          */
    @@ -330,11 +330,11 @@ public static ExcelReader getReader(InputStream bookStream, int sheetIndex, bool
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
          * 读取结束自动关闭流
          *
          * @param bookStream Excel文件的流
    -     * @param sheetName  sheet名,第一个默认是sheet1
    +     * @param sheetName  sheet名,第一个默认是sheet1
          * @return {@link ExcelReader}
          */
         public static ExcelReader getReader(InputStream bookStream, String sheetName) {
    @@ -346,10 +346,10 @@ public static ExcelReader getReader(InputStream bookStream, String sheetName) {
         }
     
         /**
    -     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
    +     * 获取Excel读取器,通过调用{@link ExcelReader}的read或readXXX方法读取Excel内容
          *
          * @param bookStream     Excel文件的流
    -     * @param sheetName      sheet名,第一个默认是sheet1
    +     * @param sheetName      sheet名,第一个默认是sheet1
          * @param closeAfterRead 读取结束是否关闭流
          * @return {@link ExcelReader}
          */
    @@ -362,9 +362,9 @@ public static ExcelReader getReader(InputStream bookStream, String sheetName, bo
         }
     
         /**
    -     * 获得{@link ExcelWriter},默认写出到第一个sheet
    -     * 不传入写出的Excel文件路径,只能调用{@link ExcelWriter#flush(OutputStream)}方法写出到流
    -     * 若写出到文件,还需调用{@link ExcelWriter#setDestFile(File)}方法自定义写出的文件,然后调用{@link ExcelWriter#flush()}方法写出到文件
    +     * 获得{@link ExcelWriter},默认写出到第一个sheet
    +     * 不传入写出的Excel文件路径,只能调用{@link ExcelWriter#flush(OutputStream)}方法写出到流
    +     * 若写出到文件,还需调用{@link ExcelWriter#setDestFile(File)}方法自定义写出的文件,然后调用{@link ExcelWriter#flush()}方法写出到文件
          *
          * @return {@link ExcelWriter}
          * @since 5.2.2
    @@ -378,9 +378,9 @@ public static ExcelWriter getWriter() {
         }
     
         /**
    -     * 获得{@link ExcelWriter},默认写出到第一个sheet
    -     * 不传入写出的Excel文件路径,只能调用{@link ExcelWriter#flush(OutputStream)}方法写出到流
    -     * 若写出到文件,还需调用{@link ExcelWriter#setDestFile(File)}方法自定义写出的文件,然后调用{@link ExcelWriter#flush()}方法写出到文件
    +     * 获得{@link ExcelWriter},默认写出到第一个sheet
    +     * 不传入写出的Excel文件路径,只能调用{@link ExcelWriter#flush(OutputStream)}方法写出到流
    +     * 若写出到文件,还需调用{@link ExcelWriter#setDestFile(File)}方法自定义写出的文件,然后调用{@link ExcelWriter#flush()}方法写出到文件
          *
          * @param isXlsx 是否为xlsx格式
          * @return {@link ExcelWriter}
    @@ -395,7 +395,7 @@ public static ExcelWriter getWriter(boolean isXlsx) {
         }
     
         /**
    -     * 获得{@link ExcelWriter},默认写出到第一个sheet
    +     * 获得{@link ExcelWriter},默认写出到第一个sheet
          *
          * @param destFilePath 目标文件路径
          * @return {@link ExcelWriter}
    @@ -409,7 +409,7 @@ public static ExcelWriter getWriter(String destFilePath) {
         }
     
         /**
    -     * 获得{@link ExcelWriter},默认写出到第一个sheet,名字为sheet1
    +     * 获得{@link ExcelWriter},默认写出到第一个sheet,名字为sheet1
          *
          * @param destFile 目标文件
          * @return {@link ExcelWriter}
    @@ -453,9 +453,9 @@ public static ExcelWriter getWriter(File destFile, String sheetName) {
         }
     
         /**
    -     * 获得{@link BigExcelWriter},默认写出到第一个sheet
    -     * 不传入写出的Excel文件路径,只能调用{@link BigExcelWriter#flush(OutputStream)}方法写出到流
    -     * 若写出到文件,还需调用{@link BigExcelWriter#setDestFile(File)}方法自定义写出的文件,然后调用{@link BigExcelWriter#flush()}方法写出到文件
    +     * 获得{@link BigExcelWriter},默认写出到第一个sheet
    +     * 不传入写出的Excel文件路径,只能调用{@link BigExcelWriter#flush(OutputStream)}方法写出到流
    +     * 若写出到文件,还需调用{@link BigExcelWriter#setDestFile(File)}方法自定义写出的文件,然后调用{@link BigExcelWriter#flush()}方法写出到文件
          *
          * @return {@link BigExcelWriter}
          */
    @@ -468,9 +468,9 @@ public static ExcelWriter getBigWriter() {
         }
     
         /**
    -     * 获得{@link BigExcelWriter},默认写出到第一个sheet
    -     * 不传入写出的Excel文件路径,只能调用{@link BigExcelWriter#flush(OutputStream)}方法写出到流
    -     * 若写出到文件,还需调用{@link BigExcelWriter#setDestFile(File)}方法自定义写出的文件,然后调用{@link BigExcelWriter#flush()}方法写出到文件
    +     * 获得{@link BigExcelWriter},默认写出到第一个sheet
    +     * 不传入写出的Excel文件路径,只能调用{@link BigExcelWriter#flush(OutputStream)}方法写出到流
    +     * 若写出到文件,还需调用{@link BigExcelWriter#setDestFile(File)}方法自定义写出的文件,然后调用{@link BigExcelWriter#flush()}方法写出到文件
          *
          * @param rowAccessWindowSize 在内存中的行数
          * @return {@link BigExcelWriter}
    @@ -484,7 +484,7 @@ public static ExcelWriter getBigWriter(int rowAccessWindowSize) {
         }
     
         /**
    -     * 获得{@link BigExcelWriter},默认写出到第一个sheet
    +     * 获得{@link BigExcelWriter},默认写出到第一个sheet
          *
          * @param destFilePath 目标文件路径
          * @return {@link BigExcelWriter}
    @@ -498,7 +498,7 @@ public static BigExcelWriter getBigWriter(String destFilePath) {
         }
     
         /**
    -     * 获得{@link BigExcelWriter},默认写出到第一个sheet,名字为sheet1
    +     * 获得{@link BigExcelWriter},默认写出到第一个sheet,名字为sheet1
          *
          * @param destFile 目标文件
          * @return {@link BigExcelWriter}
    diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelWriter.java b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelWriter.java
    index 85bce940a9..96cd10f1b5 100755
    --- a/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelWriter.java
    +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/ExcelWriter.java
    @@ -38,11 +38,11 @@
     
     /**
      * Excel 写入器
    - * 此工具用于通过POI将数据写出到Excel,此对象可完成以下两个功能
    + * 此工具用于通过POI将数据写出到Excel,此对象可完成以下两个功能
      *
      * 
    - * 1. 编辑已存在的Excel,可写出原Excel文件,也可写出到其它地方(到文件或到流)
    - * 2. 新建一个空的Excel工作簿,完成数据填充后写出(到文件或到流)
    + * 1. 编辑已存在的Excel,可写出原Excel文件,也可写出到其它地方(到文件或到流)
    + * 2. 新建一个空的Excel工作簿,完成数据填充后写出(到文件或到流)
      * 
    * * @author Kimi Liu @@ -72,14 +72,14 @@ public class ExcelWriter extends ExcelBase { */ private Comparator aliasComparator; /** - * 样式集,定义不同类型数据样式 + * 样式集,定义不同类型数据样式 */ private StyleSet styleSet; /** - * 构造,默认生成xls格式的Excel文件 - * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流 - * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 + * 构造,默认生成xls格式的Excel文件 + * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流 + * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 * * @since 5.2.2 */ @@ -89,8 +89,8 @@ public ExcelWriter() { /** * 构造 - * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流 - * 若写出到文件,需要调用{@link #flush(File)} 写出到文件 + * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流 + * 若写出到文件,需要调用{@link #flush(File)} 写出到文件 * * @param isXlsx 是否为xlsx格式 * @since 5.2.2 @@ -100,9 +100,9 @@ public ExcelWriter(boolean isXlsx) { } /** - * 构造,默认写出到第一个sheet,第一个sheet名为sheet1 + * 构造,默认写出到第一个sheet,第一个sheet名为sheet1 * - * @param destFilePath 目标文件路径,可以不存在 + * @param destFilePath 目标文件路径,可以不存在 */ public ExcelWriter(String destFilePath) { this(destFilePath, null); @@ -110,11 +110,11 @@ public ExcelWriter(String destFilePath) { /** * 构造 - * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流 - * 若写出到文件,需要调用{@link #flush(File)} 写出到文件 + * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流 + * 若写出到文件,需要调用{@link #flush(File)} 写出到文件 * * @param isXlsx 是否为xlsx格式 - * @param sheetName sheet名,第一个sheet名并写出到此sheet,例如sheet1 + * @param sheetName sheet名,第一个sheet名并写出到此sheet,例如sheet1 */ public ExcelWriter(boolean isXlsx, String sheetName) { this(BookUtils.createBook(isXlsx), sheetName); @@ -123,17 +123,17 @@ public ExcelWriter(boolean isXlsx, String sheetName) { /** * 构造 * - * @param destFilePath 目标文件路径,可以不存在 - * @param sheetName sheet名,第一个sheet名并写出到此sheet,例如sheet1 + * @param destFilePath 目标文件路径,可以不存在 + * @param sheetName sheet名,第一个sheet名并写出到此sheet,例如sheet1 */ public ExcelWriter(String destFilePath, String sheetName) { this(FileUtils.file(destFilePath), sheetName); } /** - * 构造,默认写出到第一个sheet,第一个sheet名为sheet1 + * 构造,默认写出到第一个sheet,第一个sheet名为sheet1 * - * @param destFile 目标文件,可以不存在 + * @param destFile 目标文件,可以不存在 */ public ExcelWriter(File destFile) { this(destFile, null); @@ -142,8 +142,8 @@ public ExcelWriter(File destFile) { /** * 构造 * - * @param destFile 目标文件,可以不存在 - * @param sheetName sheet名,做为第一个sheet名并写出到此sheet,例如sheet1 + * @param destFile 目标文件,可以不存在 + * @param sheetName sheet名,做为第一个sheet名并写出到此sheet,例如sheet1 */ public ExcelWriter(File destFile, String sheetName) { this(destFile.exists() ? BookUtils.createBook(FileUtils.getInputStream(destFile), true) : BookUtils.createBook(StringUtils.endWithIgnoreCase(destFile.getName(), ".xlsx")), sheetName); @@ -152,11 +152,11 @@ public ExcelWriter(File destFile, String sheetName) { /** * 构造 - * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流 - * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 + * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流 + * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 * * @param workbook {@link Workbook} - * @param sheetName sheet名,做为第一个sheet名并写出到此sheet,例如sheet1 + * @param sheetName sheet名,做为第一个sheet名并写出到此sheet,例如sheet1 */ public ExcelWriter(Workbook workbook, String sheetName) { this(BookUtils.getOrCreateSheet(workbook, sheetName)); @@ -164,8 +164,8 @@ public ExcelWriter(Workbook workbook, String sheetName) { /** * 构造 - * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流 - * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 + * 此构造不传入写出的Excel文件路径,只能调用{@link #flush(OutputStream)}方法写出到流 + * 若写出到文件,还需调用{@link #setDestFile(File)}方法自定义写出的文件,然后调用{@link #flush()}方法写出到文件 * * @param sheet {@link Sheet} */ @@ -189,7 +189,7 @@ public ExcelWriter setSheet(String sheetName) { } /** - * 重置Writer,包括: + * 重置Writer,包括: * *
          * 1. 当前行游标归零
    @@ -217,7 +217,7 @@ public ExcelWriter renameSheet(String sheetName) {
         /**
          * 重命名sheet
          *
    -     * @param sheet     sheet需要,0表示第一个sheet
    +     * @param sheet     sheet需要,0表示第一个sheet
          * @param sheetName 新的sheet名
          * @return this
          */
    @@ -227,8 +227,8 @@ public ExcelWriter renameSheet(int sheet, String sheetName) {
         }
     
         /**
    -     * 设置所有列为自动宽度,不考虑合并单元格
    -     * 此方法必须在指定列数据完全写出后调用才有效。
    +     * 设置所有列为自动宽度,不考虑合并单元格
    +     * 此方法必须在指定列数据完全写出后调用才有效
          * 列数计算是通过第一行计算的
          *
          * @return this
    @@ -242,10 +242,10 @@ public ExcelWriter autoSizeColumnAll() {
         }
     
         /**
    -     * 设置某列为自动宽度,不考虑合并单元格
    -     * 此方法必须在指定列数据完全写出后调用才有效。
    +     * 设置某列为自动宽度,不考虑合并单元格
    +     * 此方法必须在指定列数据完全写出后调用才有效
          *
    -     * @param columnIndex 第几列,从0计数
    +     * @param columnIndex 第几列,从0计数
          * @return this
          */
         public ExcelWriter autoSizeColumn(int columnIndex) {
    @@ -255,9 +255,9 @@ public ExcelWriter autoSizeColumn(int columnIndex) {
     
         /**
          * 设置某列为自动宽度
    -     * 此方法必须在指定列数据完全写出后调用才有效。
    +     * 此方法必须在指定列数据完全写出后调用才有效
          *
    -     * @param columnIndex    第几列,从0计数
    +     * @param columnIndex    第几列,从0计数
          * @param useMergedCells 是否适用于合并单元格
          * @return this
          * @since 3.3.0
    @@ -268,7 +268,7 @@ public ExcelWriter autoSizeColumn(int columnIndex, boolean useMergedCells) {
         }
     
         /**
    -     * 获取样式集,样式集可以自定义包括:
    +     * 获取样式集,样式集可以自定义包括:
          *
          * 
          * 1. 头部样式
    @@ -284,9 +284,9 @@ public StyleSet getStyleSet() {
         }
     
         /**
    -     * 设置样式集,如果不使用样式,传入{@code null}
    +     * 设置样式集,如果不使用样式,传入{@code null}
          *
    -     * @param styleSet 样式集,{@code null}表示无样式
    +     * @param styleSet 样式集,{@code null}表示无样式
          * @return this
          */
         public ExcelWriter setStyleSet(StyleSet styleSet) {
    @@ -295,7 +295,7 @@ public ExcelWriter setStyleSet(StyleSet styleSet) {
         }
     
         /**
    -     * 获取头部样式,获取样式后可自定义样式
    +     * 获取头部样式,获取样式后可自定义样式
          *
          * @return 头部样式
          */
    @@ -304,7 +304,7 @@ public CellStyle getHeadCellStyle() {
         }
     
         /**
    -     * 获取单元格样式,获取样式后可自定义样式
    +     * 获取单元格样式,获取样式后可自定义样式
          *
          * @return 单元格样式
          */
    @@ -375,7 +375,7 @@ public ExcelWriter setDestFile(File destFile) {
         }
     
         /**
    -     * 设置标题别名,key为Map中的key,value为别名
    +     * 设置标题别名,key为Map中的key,value为别名
          *
          * @param headerAlias 标题别名
          * @return this
    @@ -387,7 +387,7 @@ public ExcelWriter setHeaderAlias(Map headerAlias) {
         }
     
         /**
    -     * 清空标题别名,key为Map中的key,value为别名
    +     * 清空标题别名,key为Map中的key,value为别名
          *
          * @return this
          */
    @@ -397,7 +397,7 @@ public ExcelWriter clearHeaderAlias() {
         }
     
         /**
    -     * 设置是否只保留别名中的字段值,如果为true,则不设置alias的字段将不被输出,false表示原样输出
    +     * 设置是否只保留别名中的字段值,如果为true,则不设置alias的字段将不被输出,false表示原样输出
          *
          * @param isOnlyAlias 是否只保留别名中的字段值
          * @return this
    @@ -425,9 +425,9 @@ public ExcelWriter addHeaderAlias(String name, String alias) {
         }
     
         /**
    -     * 设置列宽(单位为一个字符的宽度,例如传入width为10,表示10个字符的宽度)
    +     * 设置列宽(单位为一个字符的宽度,例如传入width为10,表示10个字符的宽度)
          *
    -     * @param columnIndex 列号(从0开始计数,-1表示所有列的默认宽度)
    +     * @param columnIndex 列号(从0开始计数,-1表示所有列的默认宽度)
          * @param width       宽度(单位1~256个字符宽度)
          * @return this
          */
    @@ -441,9 +441,9 @@ public ExcelWriter setColumnWidth(int columnIndex, int width) {
         }
     
         /**
    -     * 设置行高,值为一个点的高度
    +     * 设置行高,值为一个点的高度
          *
    -     * @param rownum 行号(从0开始计数,-1表示所有行的默认高度)
    +     * @param rownum 行号(从0开始计数,-1表示所有行的默认高度)
          * @param height 高度
          * @return this
          */
    @@ -464,7 +464,7 @@ public ExcelWriter setRowHeight(int rownum, int height) {
          *
          * @param text     页脚的文本
          * @param align    对齐方式枚举 {@link Align}
    -     * @param isFooter 是否为页脚,false表示页眉,true表示页脚
    +     * @param isFooter 是否为页脚,false表示页眉,true表示页脚
          * @return this
          */
         public ExcelWriter setHeaderOrFooter(String text, Align align, boolean isFooter) {
    @@ -487,7 +487,7 @@ public ExcelWriter setHeaderOrFooter(String text, Align align, boolean isFooter)
     
         /**
          * 合并当前行的单元格
    -     * 样式为默认标题样式,可使用{@link #getHeadCellStyle()}方法调用后自定义默认样式
    +     * 样式为默认标题样式,可使用{@link #getHeadCellStyle()}方法调用后自定义默认样式
          *
          * @param lastColumn 合并到的最后一个列号
          * @return this
    @@ -497,9 +497,9 @@ public ExcelWriter merge(int lastColumn) {
         }
     
         /**
    -     * 合并当前行的单元格,并写入对象到单元格
    -     * 如果写到单元格中的内容非null,行号自动+1,否则当前行号不变
    -     * 样式为默认标题样式,可使用{@link #getHeadCellStyle()}方法调用后自定义默认样式
    +     * 合并当前行的单元格,并写入对象到单元格
    +     * 如果写到单元格中的内容非null,行号自动+1,否则当前行号不变
    +     * 样式为默认标题样式,可使用{@link #getHeadCellStyle()}方法调用后自定义默认样式
          *
          * @param lastColumn 合并到的最后一个列号
          * @param content    合并单元格后的内容
    @@ -510,9 +510,9 @@ public ExcelWriter merge(int lastColumn, Object content) {
         }
     
         /**
    -     * 合并某行的单元格,并写入对象到单元格
    -     * 如果写到单元格中的内容非null,行号自动+1,否则当前行号不变
    -     * 样式为默认标题样式,可使用{@link #getHeadCellStyle()}方法调用后自定义默认样式
    +     * 合并某行的单元格,并写入对象到单元格
    +     * 如果写到单元格中的内容非null,行号自动+1,否则当前行号不变
    +     * 样式为默认标题样式,可使用{@link #getHeadCellStyle()}方法调用后自定义默认样式
          *
          * @param lastColumn       合并到的最后一个列号
          * @param content          合并单元格后的内容
    @@ -533,9 +533,9 @@ public ExcelWriter merge(int lastColumn, Object content, boolean isSetHeaderStyl
         }
     
         /**
    -     * 合并某行的单元格,并写入对象到单元格
    -     * 如果写到单元格中的内容非null,行号自动+1,否则当前行号不变
    -     * 样式为默认标题样式,可使用{@link #getHeadCellStyle()}方法调用后自定义默认样式
    +     * 合并某行的单元格,并写入对象到单元格
    +     * 如果写到单元格中的内容非null,行号自动+1,否则当前行号不变
    +     * 样式为默认标题样式,可使用{@link #getHeadCellStyle()}方法调用后自定义默认样式
          *
          * @param firstRow         第一行
          * @param lastRow          最后一行
    @@ -560,19 +560,19 @@ public ExcelWriter merge(int firstRow, int lastRow, int firstColumn, int lastCol
         }
     
         /**
    -     * 写出数据,本方法只是将数据写入Workbook中的Sheet,并不写出到文件
    -     * 写出的起始行为当前行号,可使用{@link #getCurrentRow()}方法调用,根据写出的的行数,当前行号自动增加
    -     * 样式为默认样式,可使用{@link #getCellStyle()}方法调用后自定义默认样式
    -     * 默认的,当当前行号为0时,写出标题(如果为Map或Bean),否则不写标题
    +     * 写出数据,本方法只是将数据写入Workbook中的Sheet,并不写出到文件
    +     * 写出的起始行为当前行号,可使用{@link #getCurrentRow()}方法调用,根据写出的的行数,当前行号自动增加
    +     * 样式为默认样式,可使用{@link #getCellStyle()}方法调用后自定义默认样式
    +     * 默认的,当当前行号为0时,写出标题(如果为Map或Bean),否则不写标题
          *
          * 

    * data中元素支持的类型有: * *

    -     * 1. Iterable,既元素为一个集合,元素被当作一行,data表示多行
    -     * 2. Map,既元素为一个Map,第一个Map的keys作为首行,剩下的行为Map的values,data表示多行
    -     * 3. Bean,既元素为一个Bean,第一个Bean的字段名列表会作为首行,剩下的行为Bean的字段值列表,data表示多行
    -     * 4. 其它类型,按照基本类型输出(例如字符串)
    +     * 1. Iterable,既元素为一个集合,元素被当作一行,data表示多行
    +     * 2. Map,既元素为一个Map,第一个Map的keys作为首行,剩下的行为Map的values,data表示多行
    +     * 3. Bean,既元素为一个Bean,第一个Bean的字段名列表会作为首行,剩下的行为Bean的字段值列表,data表示多行
    +     * 4. 其它类型,按照基本类型输出(例如字符串)
          * 
    * * @param data 数据 @@ -583,18 +583,18 @@ public ExcelWriter write(Iterable data) { } /** - * 写出数据,本方法只是将数据写入Workbook中的Sheet,并不写出到文件 - * 写出的起始行为当前行号,可使用{@link #getCurrentRow()}方法调用,根据写出的的行数,当前行号自动增加 - * 样式为默认样式,可使用{@link #getCellStyle()}方法调用后自定义默认样式 + * 写出数据,本方法只是将数据写入Workbook中的Sheet,并不写出到文件 + * 写出的起始行为当前行号,可使用{@link #getCurrentRow()}方法调用,根据写出的的行数,当前行号自动增加 + * 样式为默认样式,可使用{@link #getCellStyle()}方法调用后自定义默认样式 * *

    * data中元素支持的类型有: * *

    -     * 1. Iterable,既元素为一个集合,元素被当作一行,data表示多行
    -     * 2. Map,既元素为一个Map,第一个Map的keys作为首行,剩下的行为Map的values,data表示多行
    -     * 3. Bean,既元素为一个Bean,第一个Bean的字段名列表会作为首行,剩下的行为Bean的字段值列表,data表示多行
    -     * 4. 其它类型,按照基本类型输出(例如字符串)
    +     * 1. Iterable,既元素为一个集合,元素被当作一行,data表示多行
    +     * 2. Map,既元素为一个Map,第一个Map的keys作为首行,剩下的行为Map的values,data表示多行
    +     * 3. Bean,既元素为一个Bean,第一个Bean的字段名列表会作为首行,剩下的行为Bean的字段值列表,data表示多行
    +     * 4. 其它类型,按照基本类型输出(例如字符串)
          * 
    * * @param data 数据 @@ -614,18 +614,18 @@ public ExcelWriter write(Iterable data, boolean isWriteKeyAsHead) { } /** - * 写出数据,本方法只是将数据写入Workbook中的Sheet,并不写出到文件 - * 写出的起始行为当前行号,可使用{@link #getCurrentRow()}方法调用,根据写出的的行数,当前行号自动增加 - * 样式为默认样式,可使用{@link #getCellStyle()}方法调用后自定义默认样式 + * 写出数据,本方法只是将数据写入Workbook中的Sheet,并不写出到文件 + * 写出的起始行为当前行号,可使用{@link #getCurrentRow()}方法调用,根据写出的的行数,当前行号自动增加 + * 样式为默认样式,可使用{@link #getCellStyle()}方法调用后自定义默认样式 * data中元素支持的类型有: * *

    - * 1. Map,既元素为一个Map,第一个Map的keys作为首行,剩下的行为Map的values,data表示多行 - * 2. Bean,既元素为一个Bean,第一个Bean的字段名列表会作为首行,剩下的行为Bean的字段值列表,data表示多行 + * 1. Map,既元素为一个Map,第一个Map的keys作为首行,剩下的行为Map的values,data表示多行 + * 2. Bean,既元素为一个Bean,第一个Bean的字段名列表会作为首行,剩下的行为Bean的字段值列表,data表示多行 *

    * * @param data 数据 - * @param comparator 比较器,用于字段名的排序 + * @param comparator 比较器,用于字段名的排序 * @return this * @since 3.2.3 */ @@ -650,9 +650,9 @@ public ExcelWriter write(Iterable data, Comparator comparator) { /** * 写出一行标题数据 - * 本方法只是将数据写入Workbook中的Sheet,并不写出到文件 - * 写出的起始行为当前行号,可使用{@link #getCurrentRow()}方法调用,根据写出的的行数,当前行号自动+1 - * 样式为默认标题样式,可使用{@link #getHeadCellStyle()}方法调用后自定义默认样式 + * 本方法只是将数据写入Workbook中的Sheet,并不写出到文件 + * 写出的起始行为当前行号,可使用{@link #getCurrentRow()}方法调用,根据写出的的行数,当前行号自动+1 + * 样式为默认标题样式,可使用{@link #getHeadCellStyle()}方法调用后自定义默认样式 * * @param rowData 一行的数据 * @return this @@ -664,16 +664,16 @@ public ExcelWriter writeHeadRow(Iterable rowData) { } /** - * 写出一行,根据rowBean数据类型不同,写出情况如下: + * 写出一行,根据rowBean数据类型不同,写出情况如下: * *
    -     * 1、如果为Iterable,直接写出一行
    -     * 2、如果为Map,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values
    -     * 3、如果为Bean,转为Map写出,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values
    +     * 1、如果为Iterable,直接写出一行
    +     * 2、如果为Map,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values
    +     * 3、如果为Bean,转为Map写出,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values
          * 
    * * @param rowBean 写出的Bean - * @param isWriteKeyAsHead 为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values + * @param isWriteKeyAsHead 为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values * @return this * @see #writeRow(Iterable) * @see #writeRow(Map, boolean) @@ -704,17 +704,17 @@ public ExcelWriter writeRow(Object rowBean, boolean isWriteKeyAsHead) { } /** - * 将一个Map写入到Excel,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values - * 如果rowMap为空(包括null),则写出空行 + * 将一个Map写入到Excel,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values + * 如果rowMap为空(包括null),则写出空行 * - * @param rowMap 写出的Map,为空(包括null),则写出空行 - * @param isWriteKeyAsHead 为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values + * @param rowMap 写出的Map,为空(包括null),则写出空行 + * @param isWriteKeyAsHead 为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values * @return this */ public ExcelWriter writeRow(Map rowMap, boolean isWriteKeyAsHead) { Assert.isFalse(this.isClosed, "ExcelWriter has been closed!"); if (MapUtils.isEmpty(rowMap)) { - // 如果写出数据为null或空,跳过当前行 + // 如果写出数据为null或空,跳过当前行 return passCurrentRow(); } @@ -729,9 +729,9 @@ public ExcelWriter writeRow(Map rowMap, boolean isWriteKeyAsHead) { /** * 写出一行数据 - * 本方法只是将数据写入Workbook中的Sheet,并不写出到文件 - * 写出的起始行为当前行号,可使用{@link #getCurrentRow()}方法调用,根据写出的的行数,当前行号自动+1 - * 样式为默认样式,可使用{@link #getCellStyle()}方法调用后自定义默认样式 + * 本方法只是将数据写入Workbook中的Sheet,并不写出到文件 + * 写出的起始行为当前行号,可使用{@link #getCurrentRow()}方法调用,根据写出的的行数,当前行号自动+1 + * 样式为默认样式,可使用{@link #getCellStyle()}方法调用后自定义默认样式 * * @param rowData 一行的数据 * @return this @@ -743,10 +743,10 @@ public ExcelWriter writeRow(Iterable rowData) { } /** - * 给指定单元格赋值,使用默认单元格样式 + * 给指定单元格赋值,使用默认单元格样式 * - * @param x X坐标,从0计数,既列号 - * @param y Y坐标,从0计数,既行号 + * @param x X坐标,从0计数,既列号 + * @param y Y坐标,从0计数,既行号 * @param value 值 * @return this */ @@ -767,8 +767,8 @@ public Font createFont() { /** * 将Excel Workbook刷出到预定义的文件 - * 如果用户未自定义输出的文件,将抛出{@link NullPointerException} - * 预定义文件可以通过{@link #setDestFile(File)} 方法预定义,或者通过构造定义 + * 如果用户未自定义输出的文件,将抛出{@link NullPointerException} + * 预定义文件可以通过{@link #setDestFile(File)} 方法预定义,或者通过构造定义 * * @return this * @throws InstrumentException IO异常 @@ -779,7 +779,7 @@ public ExcelWriter flush() throws InstrumentException { /** * 将Excel Workbook刷出到文件 - * 如果用户未自定义输出的文件,将抛出{@link InstrumentException} + * 如果用户未自定义输出的文件,将抛出{@link InstrumentException} * * @param destFile 写出到的文件 * @return this @@ -826,7 +826,7 @@ public ExcelWriter flush(OutputStream out, boolean isCloseOut) throws Instrument /** * 关闭工作簿 - * 如果用户设定了目标文件,先写出目标文件后给关闭工作簿 + * 如果用户设定了目标文件,先写出目标文件后给关闭工作簿 */ @Override public void close() { @@ -848,7 +848,7 @@ protected void closeWithoutFlush() { } /** - * 为指定的key列表添加标题别名,如果没有定义key的别名,在onlyAlias为false时使用原key + * 为指定的key列表添加标题别名,如果没有定义key的别名,在onlyAlias为false时使用原key * * @param rowMap 键列表 * @return 别名列表 @@ -874,7 +874,7 @@ protected void closeWithoutFlush() { } /** - * 获取单例的别名比较器,比较器的顺序为别名加入的顺序 + * 获取单例的别名比较器,比较器的顺序为别名加入的顺序 * * @return Comparator */ @@ -898,7 +898,7 @@ class IndexedComparator implements Comparator { /** * 构造 * - * @param objs 参与排序的数组,数组的元素位置决定了对象的排序先后 + * @param objs 参与排序的数组,数组的元素位置决定了对象的排序先后 */ public IndexedComparator(T... objs) { this.array = objs; @@ -916,12 +916,12 @@ public int compare(T o1, T o2) { } /** - * {@code null}安全的对象比较,{@code null}对象排在末尾 + * {@code null}安全的对象比较,{@code null}对象排在末尾 * * @param 被比较对象类型 - * @param c1 对象1,可以为{@code null} - * @param c2 对象2,可以为{@code null} - * @return 比较结果,如果c1 < c2,返回数小于0,c1==c2返回0,c1 > c2 大于0 + * @param c1 对象1,可以为{@code null} + * @param c2 对象2,可以为{@code null} + * @return 比较结果, 如果c1 < c2,返回数小于0,c1==c2返回0,c1 > c2 大于0 * @see java.util.Comparator#compare(Object, Object) */ public > int compare(T c1, T c2) { @@ -932,10 +932,10 @@ public > int compare(T c1, T c2) { * {@code null}安全的对象比较 * * @param 被比较对象类型(必须实现Comparable接口) - * @param c1 对象1,可以为{@code null} - * @param c2 对象2,可以为{@code null} + * @param c1 对象1,可以为{@code null} + * @param c2 对象2,可以为{@code null} * @param isNullGreater 当被比较对象为null时是否排在前面 - * @return 比较结果,如果c1 < c2,返回数小于0,c1==c2返回0,c1 > c2 大于0 + * @return 比较结果, 如果c1 < c2,返回数小于0,c1==c2返回0,c1 > c2 大于0 * @see java.util.Comparator#compare(Object, Object) */ public > int compare(T c1, T c2, boolean isNullGreater) { @@ -950,7 +950,7 @@ public > int compare(T c1, T c2, boolean isNullG } /** - * 自然比较两个对象的大小,比较规则如下: + * 自然比较两个对象的大小,比较规则如下: * *
              * 1、如果实现Comparable调用compareTo比较
    @@ -962,7 +962,7 @@ public > int compare(T c1, T c2, boolean isNullG
              * @param o1            对象1
              * @param o2            对象2
              * @param isNullGreater null值是否做为最大值
    -         * @return 比较结果,如果o1 < o2,返回数小于0,o1==o2返回0,o1 > o2 大于0
    +         * @return 比较结果, 如果o1 < o2,返回数小于0,o1==o2返回0,o1 > o2 大于0
              */
             public  int compare(T o1, T o2, boolean isNullGreater) {
                 if (o1 == o2) {
    @@ -974,7 +974,7 @@ public  int compare(T o1, T o2, boolean isNullGreater) {
                 }
     
                 if (o1 instanceof Comparable && o2 instanceof Comparable) {
    -                //如果bean可比较,直接比较bean
    +                //如果bean可比较,直接比较bean
                     return ((Comparable) o1).compareTo(o2);
                 }
     
    diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/RowUtils.java b/bus-office/src/main/java/org/aoju/bus/office/excel/RowUtils.java
    index cd24f80940..55edc9e690 100755
    --- a/bus-office/src/main/java/org/aoju/bus/office/excel/RowUtils.java
    +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/RowUtils.java
    @@ -80,7 +80,7 @@ public static List readRow(Row row, CellEditor cellEditor) {
             }
     
             if (isAllNull) {
    -            // 如果每个元素都为空,则定义为空行
    +            // 如果每个元素都为空,则定义为空行
                 return new ArrayList<>(0);
             }
             return cellValues;
    @@ -91,7 +91,7 @@ public static List readRow(Row row, CellEditor cellEditor) {
          *
          * @param row      行
          * @param rowData  一行的数据
    -     * @param styleSet 单元格样式集,包括日期等样式
    +     * @param styleSet 单元格样式集,包括日期等样式
          * @param isHeader 是否为标题行
          */
         public static void writeRow(Row row, Iterable rowData, StyleSet styleSet, boolean isHeader) {
    diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/StyleSet.java b/bus-office/src/main/java/org/aoju/bus/office/excel/StyleSet.java
    index 3cbc07e896..97eec81670 100755
    --- a/bus-office/src/main/java/org/aoju/bus/office/excel/StyleSet.java
    +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/StyleSet.java
    @@ -28,7 +28,7 @@
     import java.io.Serializable;
     
     /**
    - * 样式集合,此样式集合汇集了整个工作簿的样式,用于减少样式的创建和冗余
    + * 样式集合,此样式集合汇集了整个工作簿的样式,用于减少样式的创建和冗余
      *
      * @author Kimi Liu
      * @version 5.2.2
    @@ -80,7 +80,7 @@ public StyleSet(Workbook workbook) {
         }
     
         /**
    -     * 获取头部样式,获取后可以定义整体头部样式
    +     * 获取头部样式,获取后可以定义整体头部样式
          *
          * @return 头部样式
          */
    @@ -89,7 +89,7 @@ public CellStyle getHeadCellStyle() {
         }
     
         /**
    -     * 获取常规单元格样式,获取后可以定义整体头部样式
    +     * 获取常规单元格样式,获取后可以定义整体头部样式
          *
          * @return 常规单元格样式
          */
    @@ -98,7 +98,7 @@ public CellStyle getCellStyle() {
         }
     
         /**
    -     * 获取数字(带小数点)单元格样式,获取后可以定义整体头部样式
    +     * 获取数字(带小数点)单元格样式,获取后可以定义整体头部样式
          *
          * @return 数字(带小数点)单元格样式
          */
    @@ -107,7 +107,7 @@ public CellStyle getCellStyleForNumber() {
         }
     
         /**
    -     * 获取日期单元格样式,获取后可以定义整体头部样式
    +     * 获取日期单元格样式,获取后可以定义整体头部样式
          *
          * @return 日期单元格样式
          */
    @@ -166,8 +166,8 @@ public StyleSet setBackgroundColor(IndexedColors backgroundColor, boolean withHe
          * 设置全局字体
          *
          * @param color      字体颜色
    -     * @param fontSize   字体大小,-1表示默认大小
    -     * @param fontName   字体名,null表示默认字体
    +     * @param fontSize   字体大小,-1表示默认大小
    +     * @param fontName   字体名,null表示默认字体
          * @param ignoreHead 是否跳过头部样式
          * @return this
          */
    @@ -179,7 +179,7 @@ public StyleSet setFont(short color, short fontSize, String fontName, boolean ig
         /**
          * 设置全局字体
          *
    -     * @param font       字体,可以通过{@link StyleUtils#createFont(Workbook, short, short, String)}创建
    +     * @param font       字体,可以通过{@link StyleUtils#createFont(Workbook, short, short, String)}创建
          * @param ignoreHead 是否跳过头部样式
          * @return this
          */
    diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/StyleUtils.java b/bus-office/src/main/java/org/aoju/bus/office/excel/StyleUtils.java
    index 21d13bb5d6..318f559a99 100755
    --- a/bus-office/src/main/java/org/aoju/bus/office/excel/StyleUtils.java
    +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/StyleUtils.java
    @@ -129,7 +129,7 @@ public static CellStyle setColor(CellStyle cellStyle, short color, FillPatternTy
          * @param workbook {@link Workbook}
          * @param color    字体颜色
          * @param fontSize 字体大小
    -     * @param fontName 字体名称,可以为null使用默认字体
    +     * @param fontName 字体名称,可以为null使用默认字体
          * @return {@link Font}
          */
         public static Font createFont(Workbook workbook, short color, short fontSize, String fontName) {
    @@ -143,7 +143,7 @@ public static Font createFont(Workbook workbook, short color, short fontSize, St
          * @param font     字体{@link Font}
          * @param color    字体颜色
          * @param fontSize 字体大小
    -     * @param fontName 字体名称,可以为null使用默认字体
    +     * @param fontName 字体名称,可以为null使用默认字体
          * @return {@link Font}
          */
         public static Font setFontStyle(Font font, short color, short fontSize, String fontName) {
    @@ -164,7 +164,7 @@ public static Font setFontStyle(Font font, short color, short fontSize, String f
          *
          * 
          * 1. 文字上下左右居中
    -     * 2. 细边框,黑色
    +     * 2. 细边框,黑色
          * 
    * * @param workbook {@link Workbook} 工作簿 diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/cell/CellEditor.java b/bus-office/src/main/java/org/aoju/bus/office/excel/cell/CellEditor.java index d7b086fdee..880ab81a13 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/cell/CellEditor.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/cell/CellEditor.java @@ -36,7 +36,7 @@ public interface CellEditor { /** * 编辑 * - * @param cell 单元格对象,可以获取单元格行、列样式等信息 + * @param cell 单元格对象,可以获取单元格行、列样式等信息 * @param value 单元格值 * @return 编辑后的对象 */ diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/cell/CellValue.java b/bus-office/src/main/java/org/aoju/bus/office/excel/cell/CellValue.java index 0a35b92879..611b87c5ec 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/cell/CellValue.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/cell/CellValue.java @@ -24,7 +24,7 @@ package org.aoju.bus.office.excel.cell; /** - * 抽象的单元格值接口,用于判断不同类型的单元格值 + * 抽象的单元格值接口,用于判断不同类型的单元格值 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/editors/NumericToIntEditor.java b/bus-office/src/main/java/org/aoju/bus/office/excel/editors/NumericToIntEditor.java index 682a856d86..c6f6e3e0cf 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/editors/NumericToIntEditor.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/editors/NumericToIntEditor.java @@ -27,7 +27,7 @@ import org.apache.poi.ss.usermodel.Cell; /** - * POI中NUMRIC类型的值默认返回的是Double类型,此编辑器用于转换其为int型 + * POI中NUMRIC类型的值默认返回的是Double类型,此编辑器用于转换其为int型 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/sax/AbstractExcelSaxReader.java b/bus-office/src/main/java/org/aoju/bus/office/excel/sax/AbstractExcelSaxReader.java index ba4b449068..d8ba1548f6 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/sax/AbstractExcelSaxReader.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/sax/AbstractExcelSaxReader.java @@ -30,9 +30,9 @@ import java.io.InputStream; /** - * 抽象的Sax方式Excel读取器,提供一些共用方法 + * 抽象的Sax方式Excel读取器,提供一些共用方法 * - * @param 子对象类型,用于标记返回值this + * @param 子对象类型,用于标记返回值this * @author Kimi Liu * @version 5.2.2 * @since JDK 1.8+ diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/sax/Excel03SaxReader.java b/bus-office/src/main/java/org/aoju/bus/office/excel/sax/Excel03SaxReader.java index e62ed60c1d..9a0ee39042 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/sax/Excel03SaxReader.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/sax/Excel03SaxReader.java @@ -43,7 +43,7 @@ import java.util.List; /** - * Excel2003格式的事件-用户模型方式读取器,统一将此归类为Sax读取 + * Excel2003格式的事件-用户模型方式读取器,统一将此归类为Sax读取 * * @author Kimi Liu * @version 5.2.2 @@ -52,7 +52,7 @@ public class Excel03SaxReader extends AbstractExcelSaxReader implements HSSFListener { /** - * 如果为公式,true表示输出公式计算后的结果值,false表示输出公式本身 + * 如果为公式,true表示输出公式计算后的结果值,false表示输出公式本身 */ private boolean isOutputFormulaValues = true; @@ -61,7 +61,7 @@ public class Excel03SaxReader extends AbstractExcelSaxReader i */ private SheetRecordCollectingListener workbookBuildingListener; /** - * 子工作簿,用于公式计算 + * 子工作簿,用于公式计算 */ private HSSFWorkbook stubWorkbook; @@ -73,7 +73,7 @@ public class Excel03SaxReader extends AbstractExcelSaxReader i private FormatTrackingHSSFListener formatListener; /** - * Sheet边界记录,此Record中可以获得Sheet名 + * Sheet边界记录,此Record中可以获得Sheet名 */ private List boundSheetRecords = new ArrayList<>(); @@ -83,7 +83,7 @@ public class Excel03SaxReader extends AbstractExcelSaxReader i private List rowCellList = new ArrayList<>(); /** - * 自定义需要处理的sheet编号,如果-1表示处理所有sheet + * 自定义需要处理的sheet编号,如果-1表示处理所有sheet */ private int rid = -1; // 当前表索引 @@ -149,7 +149,7 @@ public Excel03SaxReader read(POIFSFileSystem fs, int rid) throws InstrumentExcep } /** - * 获得Sheet序号,如果处理所有sheet,获得最大的Sheet序号,从0开始 + * 获得Sheet序号,如果处理所有sheet,获得最大的Sheet序号,从0开始 * * @return sheet序号 */ @@ -158,7 +158,7 @@ public int getSheetIndex() { } /** - * 获得Sheet名,如果处理所有sheet,获得后一个Sheet名,从0开始 + * 获得Sheet名,如果处理所有sheet,获得后一个Sheet名,从0开始 * * @return Sheet名 */ @@ -170,7 +170,7 @@ public String getSheetName() { } /** - * HSSFListener 监听方法,处理 Record + * HSSFListener 监听方法,处理 Record * * @param record 记录 */ @@ -182,7 +182,7 @@ public void processRecord(Record record) { } if (record instanceof BoundSheetRecord) { - // Sheet边界记录,此Record中可以获得Sheet名 + // Sheet边界记录,此Record中可以获得Sheet名 boundSheetRecords.add((BoundSheetRecord) record); } else if (record instanceof SSTRecord) { // 静态字符串表 @@ -190,7 +190,7 @@ public void processRecord(Record record) { } else if (record instanceof BOFRecord) { BOFRecord bofRecord = (BOFRecord) record; if (bofRecord.getType() == BOFRecord.TYPE_WORKSHEET) { - // 如果有需要,则建立子工作薄 + // 如果有需要,则建立子工作薄 if (workbookBuildingListener != null && stubWorkbook == null) { stubWorkbook = workbookBuildingListener.getStubHSSFWorkbook(); } @@ -278,7 +278,7 @@ private void processCellValue(Record record) { } else { double numValue = numrec.getValue(); final long longPart = (long) numValue; - // 对于无小数部分的数字类型,转为Long,否则保留原数字 + // 对于无小数部分的数字类型,转为Long,否则保留原数字 if (longPart == numValue) { value = longPart; } else { @@ -295,12 +295,12 @@ private void processCellValue(Record record) { } /** - * 处理行结束后的操作,{@link LastCellOfRowDummyRecord}是行结束的标识Record + * 处理行结束后的操作,{@link LastCellOfRowDummyRecord}是行结束的标识Record * * @param lastCell 行结束的标识Record */ private void processLastCell(LastCellOfRowDummyRecord lastCell) { - // 每行结束时, 调用handle() 方法 + // 每行结束时, 调用handle() 方法 this.rowHandler.handle(curRid, lastCell.getRow(), this.rowCellList); // 清空行Cache this.rowCellList.clear(); diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/sax/Excel07SaxReader.java b/bus-office/src/main/java/org/aoju/bus/office/excel/sax/Excel07SaxReader.java index 6602acee77..b05c183908 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/sax/Excel07SaxReader.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/sax/Excel07SaxReader.java @@ -91,17 +91,17 @@ public class Excel07SaxReader extends AbstractExcelSaxReader i private String lastContent; // 单元数据类型 private CellDataType cellDataType; - // 当前列坐标, 如A1,B5 + // 当前列坐标, 如A1,B5 private String curCoordinate; // 前一个列的坐标 private String preCoordinate; // 行的最大列坐标 private String maxCellCoordinate; - // 单元格的格式表,对应style.xml + // 单元格的格式表,对应style.xml private StylesTable stylesTable; - // 单元格存储格式的索引,对应style.xml中的numFmts元素的子元素索引 + // 单元格存储格式的索引,对应style.xml中的numFmts元素的子元素索引 private int numFmtIndex; - // 单元格存储的格式化字符串,nmtFmt的formateCode属性的值 + // 单元格存储的格式化字符串,nmtFmt的formateCode属性的值 private String numFmtString; // sheet的索引 private int sheetIndex; @@ -151,10 +151,10 @@ public Excel07SaxReader read(InputStream in, int rid) throws InstrumentException } /** - * 开始读取Excel,Sheet编号从0开始计数 + * 开始读取Excel,Sheet编号从0开始计数 * - * @param opcPackage {@link OPCPackage},Excel包 - * @param rid Excel中的sheet rid编号,如果为-1处理所有编号的sheet + * @param opcPackage {@link OPCPackage},Excel包 + * @param rid Excel中的sheet rid编号,如果为-1处理所有编号的sheet * @return this * @throws InstrumentException POI异常 */ @@ -206,11 +206,11 @@ public void startElement(String uri, String localName, String qName, Attributes // 获取当前列坐标 String tempCurCoordinate = attributes.getValue(R_ATTR); - // 前一列为null,则将其设置为"@",A为第一列,ascii码为65,前一列即为@,ascii码64 + // 前一列为null,则将其设置为"@",A为第一列,ascii码为65,前一列即为@,ascii码64 if (preCoordinate == null) { preCoordinate = String.valueOf(ExcelSaxUtils.CELL_FILL_CHAR); } else { - // 存在,则前一列要设置为上一列的坐标 + // 存在,则前一列要设置为上一列的坐标 preCoordinate = curCoordinate; } // 重置当前列 @@ -233,21 +233,22 @@ private void setCellType(Attributes attribute) { numFmtString = ""; this.cellDataType = CellDataType.of(attribute.getValue(T_ATTR_VALUE)); - // 获取单元格的xf索引,对应style.xml中cellXfs的子元素xf - final String xfIndexStr = attribute.getValue(S_ATTR_VALUE); - if (xfIndexStr != null) { - int xfIndex = Integer.parseInt(xfIndexStr); - XSSFCellStyle xssfCellStyle = stylesTable.getStyleAt(xfIndex); - numFmtIndex = xssfCellStyle.getDataFormat(); - numFmtString = xssfCellStyle.getDataFormatString(); - - if (numFmtString == null) { - numFmtString = BuiltinFormats.getBuiltinFormat(numFmtIndex); - } else if (CellDataType.NUMBER == this.cellDataType && org.apache.poi.ss.usermodel.DateUtil.isADateFormat(numFmtIndex, numFmtString)) { - cellDataType = CellDataType.DATE; + // 获取单元格的xf索引,对应style.xml中cellXfs的子元素xf + if (null != this.stylesTable) { + final String xfIndexStr = attribute.getValue(S_ATTR_VALUE); + if (null != xfIndexStr) { + int xfIndex = Integer.parseInt(xfIndexStr); + XSSFCellStyle xssfCellStyle = stylesTable.getStyleAt(xfIndex); + numFmtIndex = xssfCellStyle.getDataFormat(); + numFmtString = xssfCellStyle.getDataFormatString(); + + if (numFmtString == null) { + numFmtString = BuiltinFormats.getBuiltinFormat(numFmtIndex); + } else if (CellDataType.NUMBER == this.cellDataType && org.apache.poi.ss.usermodel.DateUtil.isADateFormat(numFmtIndex, numFmtString)) { + cellDataType = CellDataType.DATE; + } } } - } /** @@ -267,7 +268,7 @@ public void endElement(String uri, String localName, String qName) throws SAXExc fillBlankCell(preCoordinate, curCoordinate, false); rowCellList.add(curCell++, value); } else if (ROW_ELEMENT.equals(qName)) { - // 如果是row标签,说明已经到了一行的结尾 + // 如果是row标签,说明已经到了一行的结尾 // 最大列坐标以第一行的为准 if (curRow == 0) { maxCellCoordinate = curCoordinate; @@ -357,7 +358,7 @@ private void parse(InputStream sheetInputStream) throws IOException, SAXExceptio } /** - * 填充空白单元格,如果前一个单元格大于后一个,不需要填充 + * 填充空白单元格,如果前一个单元格大于后一个,不需要填充 * * @param preCoordinate 前一个单元格坐标 * @param curCoordinate 当前单元格坐标 diff --git a/bus-office/src/main/java/org/aoju/bus/office/excel/sax/ExcelSaxReader.java b/bus-office/src/main/java/org/aoju/bus/office/excel/sax/ExcelSaxReader.java index ec07a18b71..492c366bfc 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/excel/sax/ExcelSaxReader.java +++ b/bus-office/src/main/java/org/aoju/bus/office/excel/sax/ExcelSaxReader.java @@ -29,16 +29,16 @@ import java.io.InputStream; /** - * Sax方式读取Excel接口,提供一些共用方法 + * Sax方式读取Excel接口,提供一些共用方法 * - * @param 子对象类型,用于标记返回值this + * @param 子对象类型,用于标记返回值this * @author Kimi Liu * @version 5.2.2 * @since JDK 1.8+ */ public interface ExcelSaxReader { /** - * 开始读取Excel,读取所有sheet + * 开始读取Excel,读取所有sheet * * @param path Excel文件路径 * @return this @@ -47,7 +47,7 @@ public interface ExcelSaxReader { T read(String path) throws InstrumentException; /** - * 开始读取Excel,读取所有sheet + * 开始读取Excel,读取所有sheet * * @param file Excel文件 * @return this @@ -56,7 +56,7 @@ public interface ExcelSaxReader { T read(File file) throws InstrumentException; /** - * 开始读取Excel,读取所有sheet,读取结束后并不关闭流 + * 开始读取Excel,读取所有sheet,读取结束后并不关闭流 * * @param in Excel包流 * @return this @@ -68,7 +68,7 @@ public interface ExcelSaxReader { * 开始读取Excel * * @param path 文件路径 - * @param rid Excel中的sheet rid编号,如果为-1处理所有编号的sheet + * @param rid Excel中的sheet rid编号,如果为-1处理所有编号的sheet * @return this * @throws InstrumentException POI异常 */ @@ -78,17 +78,17 @@ public interface ExcelSaxReader { * 开始读取Excel * * @param file Excel文件 - * @param rid Excel中的sheet rid编号,如果为-1处理所有编号的sheet + * @param rid Excel中的sheet rid编号,如果为-1处理所有编号的sheet * @return this * @throws InstrumentException POI异常 */ T read(File file, int rid) throws InstrumentException; /** - * 开始读取Excel,读取结束后并不关闭流 + * 开始读取Excel,读取结束后并不关闭流 * * @param in Excel流 - * @param rid Excel中的sheet rid编号,如果为-1处理所有编号的sheet + * @param rid Excel中的sheet rid编号,如果为-1处理所有编号的sheet * @return this * @throws InstrumentException POI异常 */ diff --git a/bus-office/src/main/java/org/aoju/bus/office/word/DocUtils.java b/bus-office/src/main/java/org/aoju/bus/office/word/DocUtils.java index 59ed97ddbb..7ed4ae5823 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/word/DocUtils.java +++ b/bus-office/src/main/java/org/aoju/bus/office/word/DocUtils.java @@ -42,7 +42,7 @@ public class DocUtils { /** - * 创建{@link XWPFDocument},如果文件已存在则读取之,否则创建新的 + * 创建{@link XWPFDocument},如果文件已存在则读取之,否则创建新的 * * @param file docx文件 * @return {@link XWPFDocument} diff --git a/bus-office/src/main/java/org/aoju/bus/office/word/TableUtils.java b/bus-office/src/main/java/org/aoju/bus/office/word/TableUtils.java index d723692115..e1a736d899 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/word/TableUtils.java +++ b/bus-office/src/main/java/org/aoju/bus/office/word/TableUtils.java @@ -47,7 +47,7 @@ public class TableUtils { /** - * 创建空表,只有一行 + * 创建空表,只有一行 * * @param doc {@link XWPFDocument} * @return {@link XWPFTable} @@ -68,7 +68,7 @@ public static XWPFTable createTable(XWPFDocument doc, Iterable data) { XWPFTable table = doc.createTable(); if (IterUtils.isEmpty(data)) { - // 数据为空,返回空表 + // 数据为空,返回空表 return table; } @@ -86,7 +86,7 @@ public static XWPFTable createTable(XWPFDocument doc, Iterable data) { * * @param row 行 * @param rowBean 行数据 - * @param isWriteKeyAsHead 如果为Map或者Bean,是否写标题 + * @param isWriteKeyAsHead 如果为Map或者Bean,是否写标题 */ public static void writeRow(XWPFTableRow row, Object rowBean, boolean isWriteKeyAsHead) { if (rowBean instanceof Iterable) { @@ -142,10 +142,10 @@ public static void writeRow(XWPFTableRow row, Iterable rowData) { /** * 获取或创建新行 - * 存在则直接返回,不存在创建新的行 + * 存在则直接返回,不存在创建新的行 * * @param table {@link XWPFTable} - * @param index 索引(行号),从0开始 + * @param index 索引(行号),从0开始 * @return {@link XWPFTableRow} */ public static XWPFTableRow getOrCreateRow(XWPFTable table, int index) { @@ -159,10 +159,10 @@ public static XWPFTableRow getOrCreateRow(XWPFTable table, int index) { /** * 获取或创建新单元格 - * 存在则直接返回,不存在创建新的单元格 + * 存在则直接返回,不存在创建新的单元格 * * @param row {@link XWPFTableRow} 行 - * @param index index 索引(列号),从0开始 + * @param index index 索引(列号),从0开始 * @return {@link XWPFTableCell} */ public static XWPFTableCell getOrCreateCell(XWPFTableRow row, int index) { diff --git a/bus-office/src/main/java/org/aoju/bus/office/word/Word07Writer.java b/bus-office/src/main/java/org/aoju/bus/office/word/Word07Writer.java index ede98e54c2..ab8f4dd6da 100755 --- a/bus-office/src/main/java/org/aoju/bus/office/word/Word07Writer.java +++ b/bus-office/src/main/java/org/aoju/bus/office/word/Word07Writer.java @@ -115,7 +115,7 @@ public Word07Writer setDestFile(File destFile) { * 增加一个段落 * * @param font 字体信息{@link Font} - * @param texts 段落中的文本,支持多个文本作为一个段落 + * @param texts 段落中的文本,支持多个文本作为一个段落 * @return this */ public Word07Writer addText(Font font, String... texts) { @@ -127,7 +127,7 @@ public Word07Writer addText(Font font, String... texts) { * * @param align 段落对齐方式{@link ParagraphAlignment} * @param font 字体信息{@link Font} - * @param texts 段落中的文本,支持多个文本作为一个段落 + * @param texts 段落中的文本,支持多个文本作为一个段落 * @return this */ public Word07Writer addText(ParagraphAlignment align, Font font, String... texts) { @@ -154,7 +154,7 @@ public Word07Writer addText(ParagraphAlignment align, Font font, String... texts /** * 增加表格数据 * - * @param data 表格数据,多行数据。元素表示一行数据,当为集合或者数组时,为一行;当为Map或者Bean时key表示标题,values为数据 + * @param data 表格数据,多行数据 元素表示一行数据,当为集合或者数组时,为一行;当为Map或者Bean时key表示标题,values为数据 * @return this */ public Word07Writer addTable(Iterable data) { @@ -164,8 +164,8 @@ public Word07Writer addTable(Iterable data) { /** * 将Excel Workbook刷出到预定义的文件 - * 如果用户未自定义输出的文件,将抛出{@link NullPointerException} - * 预定义文件可以通过{@link #setDestFile(File)} 方法预定义,或者通过构造定义 + * 如果用户未自定义输出的文件,将抛出{@link NullPointerException} + * 预定义文件可以通过{@link #setDestFile(File)} 方法预定义,或者通过构造定义 * * @return this * @throws InstrumentException IO异常 @@ -176,7 +176,7 @@ public Word07Writer flush() throws InstrumentException { /** * 将Excel Workbook刷出到文件 - * 如果用户未自定义输出的文件,将抛出{@link NullPointerException} + * 如果用户未自定义输出的文件,将抛出{@link NullPointerException} * * @param destFile 写出到的文件 * @return this @@ -223,7 +223,7 @@ public Word07Writer flush(OutputStream out, boolean isCloseOut) throws Instrumen /** * 关闭Word文档 - * 如果用户设定了目标文件,先写出目标文件后给关闭工作簿 + * 如果用户设定了目标文件,先写出目标文件后给关闭工作簿 */ @Override public void close() { diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/ISelect.java b/bus-pager/src/main/java/org/aoju/bus/pager/ISelect.java index ebd103a80e..3faa7cf831 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/ISelect.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/ISelect.java @@ -33,7 +33,7 @@ public interface ISelect { /** - * 在接口中调用自己的查询方法,不要在该方法内写过多代码,只要一行查询方法最好 + * 在接口中调用自己的查询方法,不要在该方法内写过多代码,只要一行查询方法最好 */ void doSelect(); diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/Page.java b/bus-pager/src/main/java/org/aoju/bus/pager/Page.java index e68759748e..b43d075a41 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/Page.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/Page.java @@ -39,7 +39,7 @@ public class Page extends ArrayList implements Closeable { private static final long serialVersionUID = 1L; /** - * 页码,从1开始 + * 页码,从1开始 */ private int pageNo; /** @@ -71,7 +71,7 @@ public class Page extends ArrayList implements Closeable { */ private Boolean reasonable; /** - * 当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果 + * 当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果 */ private Boolean pageSizeZero; /** @@ -153,7 +153,7 @@ public int getPageNo() { } public Page setPageNo(int pageNo) { - //分页合理化,针对不合理的页码自动处理 + //分页合理化,针对不合理的页码自动处理 this.pageNo = ((reasonable != null && reasonable) && pageNo <= 0) ? 1 : pageNo; return this; } @@ -191,7 +191,7 @@ public void setTotal(long total) { } else { pages = 0; } - //分页合理化,针对不合理的页码自动处理 + //分页合理化,针对不合理的页码自动处理 if ((reasonable != null && reasonable) && pageNo > pages) { if (pages != 0) { pageNo = pages; @@ -209,7 +209,7 @@ public Page setReasonable(Boolean reasonable) { return this; } this.reasonable = reasonable; - //分页合理化,针对不合理的页码自动处理 + //分页合理化,针对不合理的页码自动处理 if (this.reasonable && this.pageNo <= 0) { this.pageNo = 1; calculateStartAndEndRow(); @@ -269,7 +269,7 @@ public Page setCount(boolean count) { * @return 结果 */ public Page pageNo(int pageNo) { - //分页合理化,针对不合理的页码自动处理 + //分页合理化,针对不合理的页码自动处理 this.pageNo = ((reasonable != null && reasonable) && pageNo <= 0) ? 1 : pageNo; return this; } @@ -309,7 +309,7 @@ public Page reasonable(Boolean reasonable) { } /** - * 当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果 + * 当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果 * * @param pageSizeZero 分页大小 * @return 结果 diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/PageContext.java b/bus-pager/src/main/java/org/aoju/bus/pager/PageContext.java index 3934547ce2..8ec1753106 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/PageContext.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/PageContext.java @@ -54,7 +54,7 @@ public class PageContext extends PageMethod implements Dialect { @Override public boolean skip(MappedStatement ms, Object parameterObject, RowBounds rowBounds) { if (ms.getId().endsWith(CountMappedStatement.COUNT)) { - throw new RuntimeException("在系统中发现了多个分页插件,请检查系统配置!"); + throw new RuntimeException("在系统中发现了多个分页插件,请检查系统配置!"); } Page page = pageParams.getPage(parameterObject, rowBounds); if (page == null) { @@ -105,7 +105,7 @@ public String getPageSql(String sql, Page page, RowBounds rowBounds, CacheKey pa @Override public Object afterPage(List pageList, Object parameterObject, RowBounds rowBounds) { - //这个方法即使不分页也会被执行,所以要判断 null + //这个方法即使不分页也会被执行,所以要判断 null AbstractHelperDialect delegate = autoDialect.getDelegate(); if (delegate != null) { return delegate.afterPage(pageList, parameterObject, rowBounds); @@ -115,7 +115,7 @@ public Object afterPage(List pageList, Object parameterObject, RowBounds rowBoun @Override public void afterAll() { - //这个方法即使不分页也会被执行,所以要判断 null + //这个方法即使不分页也会被执行,所以要判断 null AbstractHelperDialect delegate = autoDialect.getDelegate(); if (delegate != null) { delegate.afterAll(); diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/Pages.java b/bus-pager/src/main/java/org/aoju/bus/pager/Pages.java index 4cd5c5531e..3fb6c9e93b 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/Pages.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/Pages.java @@ -43,7 +43,7 @@ public class Pages extends PageSerializable { //当前页的数量 private int size; - //由于startRow和endRow不常用,这里说个具体的用法 + //由于startRow和endRow不常用,这里说个具体的用法 //可以在页面中"显示startRow到endRow 共size条数据" //当前页面第一个元素在数据库中的行号 @@ -102,7 +102,7 @@ public Pages(List list, int navigatePages) { this.pages = page.getPages(); this.size = page.size(); - //由于结果是>startRow的,所以实际的需要+1 + //由于结果是>startRow的,所以实际的需要+1 if (this.size == 0) { this.startRow = 0; this.endRow = 0; @@ -124,7 +124,7 @@ public Pages(List list, int navigatePages) { this.navigatePages = navigatePages; //计算导航页 calcNavigatepageNums(); - //计算前后页,第一页,最后一页 + //计算前后页,第一页,最后一页 calcPage(); //判断页面边界 judgePageBoudary(); @@ -176,7 +176,7 @@ private void calcNavigatepageNums() { } /** - * 计算前后页,第一页,最后一页 + * 计算前后页,第一页,最后一页 */ private void calcPage() { if (navigatepageNums != null && navigatepageNums.length > 0) { diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/AbstractHelperDialect.java b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/AbstractHelperDialect.java index 25448f9806..9fb686816f 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/AbstractHelperDialect.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/AbstractHelperDialect.java @@ -85,8 +85,8 @@ public boolean afterCount(long count, Object parameterObject, RowBounds rowBound if (rowBounds instanceof PageRowBounds) { ((PageRowBounds) rowBounds).setTotal(count); } - //pageSize < 0 的时候,不执行分页查询 - //pageSize = 0 的时候,还需要执行后续查询,但是不会分页 + //pageSize < 0 的时候,不执行分页查询 + //pageSize = 0 的时候,还需要执行后续查询,但是不会分页 if (page.getPageSize() < 0) { return false; } @@ -110,7 +110,7 @@ public Object processParameterObject(MappedStatement ms, Object parameterObject, paramMap.putAll((Map) parameterObject); } else { paramMap = new HashMap(); - //动态sql时的判断条件不会出现在ParameterMapping中,但是必须有,所以这里需要收集所有的getter属性 + //动态sql时的判断条件不会出现在ParameterMapping中,但是必须有,所以这里需要收集所有的getter属性 //TypeHandlerRegistry可以直接处理的会作为一个直接使用的对象进行处理 boolean hasTypeHandler = ms.getConfiguration().getTypeHandlerRegistry().hasTypeHandler(parameterObject.getClass()); org.apache.ibatis.reflection.MetaObject metaObject = MetaObject.forObject(parameterObject); @@ -120,7 +120,7 @@ public Object processParameterObject(MappedStatement ms, Object parameterObject, paramMap.put(name, metaObject.getValue(name)); } } - //下面这段方法,主要解决一个常见类型的参数时的问题 + //下面这段方法,主要解决一个常见类型的参数时的问题 if (boundSql.getParameterMappings() != null && boundSql.getParameterMappings().size() > 0) { for (ParameterMapping parameterMapping : boundSql.getParameterMappings()) { String name = parameterMapping.getProperty(); diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/AbstractRowBoundsDialect.java b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/AbstractRowBoundsDialect.java index ce5e58630f..73c48087a0 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/AbstractRowBoundsDialect.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/AbstractRowBoundsDialect.java @@ -57,7 +57,7 @@ public boolean beforeCount(MappedStatement ms, Object parameterObject, RowBounds @Override public boolean afterCount(long count, Object parameterObject, RowBounds rowBounds) { - //由于 beforeCount 校验,这里一定是 PageRowBounds + //由于 beforeCount 校验,这里一定是 PageRowBounds ((PageRowBounds) rowBounds).setTotal(count); return count > 0; } diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/Dialect.java b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/Dialect.java index fd5c6e6fe6..9b700b744e 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/Dialect.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/Dialect.java @@ -32,7 +32,7 @@ import java.util.Properties; /** - * 数据库方言,针对不同数据库进行实现 + * 数据库方言,针对不同数据库进行实现 * * @author Kimi Liu * @version 5.2.2 @@ -55,12 +55,12 @@ public interface Dialect { * @param ms MappedStatement * @param parameterObject 方法参数 * @param rowBounds 分页参数 - * @return true 跳过,返回默认查询结果,false 执行分页查询 + * @return true 跳过,返回默认查询结果,false 执行分页查询 */ boolean skip(MappedStatement ms, Object parameterObject, RowBounds rowBounds); /** - * 执行分页前,返回 true 会进行 count 查询,false 会继续下面的 beforePage 判断 + * 执行分页前,返回 true 会进行 count 查询,false 会继续下面的 beforePage 判断 * * @param ms MappedStatement * @param parameterObject 方法参数 @@ -87,7 +87,7 @@ public interface Dialect { * @param count 查询结果总数 * @param parameterObject 接口参数 * @param rowBounds 分页参数 - * @return true 继续分页查询,false 直接返回 + * @return true 继续分页查询,false 直接返回 */ boolean afterCount(long count, Object parameterObject, RowBounds rowBounds); @@ -103,7 +103,7 @@ public interface Dialect { Object processParameterObject(MappedStatement ms, Object parameterObject, BoundSql boundSql, CacheKey pageKey); /** - * 执行分页前,返回 true 会进行分页查询,false 会返回默认查询结果 + * 执行分页前,返回 true 会进行分页查询,false 会返回默认查询结果 * * @param ms MappedStatement * @param parameterObject 方法参数 @@ -125,7 +125,7 @@ public interface Dialect { String getPageSql(MappedStatement ms, BoundSql boundSql, Object parameterObject, RowBounds rowBounds, CacheKey pageKey); /** - * 分页查询后,处理分页结果,拦截器中直接 return 该方法的返回值 + * 分页查询后,处理分页结果,拦截器中直接 return 该方法的返回值 * * @param pageList 分页查询结果 * @param parameterObject 方法参数 diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/general/SqlServerDialect.java b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/general/SqlServerDialect.java index dbe530189f..caf85e043b 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/general/SqlServerDialect.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/general/SqlServerDialect.java @@ -77,8 +77,8 @@ public Object processPageParameter(MappedStatement ms, Map param } /** - * 分页查询,pageHelper转换SQL时报错with(nolock)不识别的问题, - * 重写父类AbstractHelperDialect.getPageSql转换出错的方法。 + * 分页查询,pageHelper转换SQL时报错with(nolock)不识别的问题, + * 重写父类AbstractHelperDialect.getPageSql转换出错的方法 * 1. this.replaceSql.replace(sql);先转换成假的表名 * 2. 然后进行SQL转换 * 3. this.replaceSql.restore(sql);最后再恢复成真的with(nolock) @@ -128,7 +128,7 @@ public void setProperties(Properties properties) { try { this.replaceSql = (ReplaceSql) Class.forName(replaceSql).newInstance(); } catch (Exception e) { - throw new RuntimeException("replaceSql 参数配置的值不符合要求,可选值为 simple 和 regex,或者是实现了 " + throw new RuntimeException("replaceSql 参数配置的值不符合要求,可选值为 simple 和 regex,或者是实现了 " + ReplaceSql.class.getCanonicalName() + " 接口的全限定类名", e); } } diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/replace/RegexWithNolockReplaceSql.java b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/replace/RegexWithNolockReplaceSql.java index 28536bc47b..0e2385743f 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/replace/RegexWithNolockReplaceSql.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/replace/RegexWithNolockReplaceSql.java @@ -26,7 +26,7 @@ import org.aoju.bus.pager.dialect.ReplaceSql; /** - * 正则处理 with(nolock),转换为一个 table_PAGEWITHNOLOCK + * 正则处理 with(nolock),转换为一个 table_PAGEWITHNOLOCK * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/rowbounds/SqlServerRowBoundsDialect.java b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/rowbounds/SqlServerRowBoundsDialect.java index 7710f6a7e0..b16b9e5dfb 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/dialect/rowbounds/SqlServerRowBoundsDialect.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/dialect/rowbounds/SqlServerRowBoundsDialect.java @@ -81,7 +81,7 @@ public void setProperties(Properties properties) { try { this.replaceSql = (ReplaceSql) Class.forName(replaceSql).newInstance(); } catch (Exception e) { - throw new RuntimeException("replaceSql 参数配置的值不符合要求,可选值为 simple 和 regex,或者是实现了 " + throw new RuntimeException("replaceSql 参数配置的值不符合要求,可选值为 simple 和 regex,或者是实现了 " + ReplaceSql.class.getCanonicalName() + " 接口的全限定类名", e); } } diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/parser/CountSqlParser.java b/bus-pager/src/main/java/org/aoju/bus/pager/parser/CountSqlParser.java index 022d03b0ac..4ed21f16ff 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/parser/CountSqlParser.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/parser/CountSqlParser.java @@ -35,7 +35,7 @@ import java.util.*; /** - * sql解析类,提供更智能的count查询sql + * sql解析类,提供更智能的count查询sql * * @author Kimi Liu * @version 5.2.2 @@ -46,7 +46,7 @@ public class CountSqlParser { public static final String KEEP_ORDERBY = "/*keep orderby*/"; private static final Alias TABLE_ALIAS; /** - * 聚合函数,以下列函数开头的都认为是聚合函数 + * 聚合函数,以下列函数开头的都认为是聚合函数 */ private static final Set AGGREGATE_FUNCTIONS = new HashSet(Arrays.asList( ("APPROX_COUNT_DISTINCT," + @@ -140,7 +140,7 @@ public class CountSqlParser { private final Set falseFunctions = Collections.synchronizedSet(new HashSet()); /** - * 添加到聚合函数,可以是逗号隔开的多个函数前缀 + * 添加到聚合函数,可以是逗号隔开的多个函数前缀 * * @param functions 函数 */ @@ -167,13 +167,13 @@ public String getSmartCountSql(String sql) { * 获取智能的countSql * * @param sql sql - * @param name 列名,默认 0 + * @param name 列名,默认 0 * @return the string */ public String getSmartCountSql(String sql, String name) { //解析SQL Statement stmt = null; - //特殊sql不需要去掉order by时,使用注释前缀 + //特殊sql不需要去掉order by时,使用注释前缀 if (sql.indexOf(KEEP_ORDERBY) >= 0) { return getSimpleCountSql(sql, name); } @@ -189,7 +189,7 @@ public String getSmartCountSql(String sql, String name) { //处理body-去order by processSelectBody(selectBody); } catch (Exception e) { - //当 sql 包含 group by 时,不去除 order by + //当 sql 包含 group by 时,不去除 order by return getSimpleCountSql(sql, name); } //处理with-去order by @@ -267,11 +267,11 @@ public boolean isSimpleCount(PlainSelect select) { return false; } for (SelectItem item : select.getSelectItems()) { - //select列中包含参数的时候不可以,否则会引起参数个数错误 + //select列中包含参数的时候不可以,否则会引起参数个数错误 if (item.toString().contains("?")) { return false; } - //如果查询列中包含函数,也不可以,函数可能会聚合列 + //如果查询列中包含函数,也不可以,函数可能会聚合列 if (item instanceof SelectExpressionItem) { Expression expression = ((SelectExpressionItem) item).getExpression(); if (expression instanceof Function) { @@ -398,7 +398,7 @@ public void processFromItem(FromItem fromItem) { } /** - * 判断Orderby是否包含参数,有参数的不能去 + * 判断Orderby是否包含参数,有参数的不能去 * * @param orderByElements OrderByElement * @return the boolean diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/parser/OrderByParser.java b/bus-pager/src/main/java/org/aoju/bus/pager/parser/OrderByParser.java index 874bbe1d47..e0b5ee0551 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/parser/OrderByParser.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/parser/OrderByParser.java @@ -55,7 +55,7 @@ public static String converToOrderBySql(String sql, String orderBy) { List orderByElements = extraOrderBy(selectBody); String defaultOrderBy = PlainSelect.orderByToString(orderByElements); if (defaultOrderBy.indexOf('?') != -1) { - throw new PageException("原SQL[" + sql + "]中的order by包含参数,因此不能使用OrderBy插件进行修改!"); + throw new PageException("原SQL[" + sql + "]中的order by包含参数,因此不能使用OrderBy插件进行修改!"); } //新的sql sql = select.toString(); diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/parser/SqlServerParser.java b/bus-pager/src/main/java/org/aoju/bus/pager/parser/SqlServerParser.java index a67f254b57..dda172d941 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/parser/SqlServerParser.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/parser/SqlServerParser.java @@ -41,13 +41,13 @@ * 注意事项: *
      *
    1. 请先保证你的SQL可以执行
    2. - *
    3. sql中最好直接包含order by,可以自动从sql提取
    4. - *
    5. 如果没有order by,可以通过入参提供,但是需要自己保证正确
    6. - *
    7. 如果sql有order by,可以通过orderby参数覆盖sql中的order by
    8. + *
    9. sql中最好直接包含order by,可以自动从sql提取
    10. + *
    11. 如果没有order by,可以通过入参提供,但是需要自己保证正确
    12. + *
    13. 如果sql有order by,可以通过orderby参数覆盖sql中的order by
    14. *
    15. order by的列名不能使用别名
    16. *
    17. 表和列使用别名的时候不要使用单引号(')
    18. *
    - * 该类设计为一个独立的工具类,依赖jsqlparser,可以独立使用 + * 该类设计为一个独立的工具类,依赖jsqlparser,可以独立使用 * * @author Kimi Liu * @version 5.2.2 @@ -113,7 +113,7 @@ public String convertToPageSql(String sql, Integer offset, Integer limit) { //获取分页查询的select Select pageSelect = getPageSelect((Select) stmt); String pageSql = pageSelect.toString(); - //缓存移到外面了,所以不替换参数 + //缓存移到外面了,所以不替换参数 if (offset != null) { pageSql = pageSql.replace(START_ROW, String.valueOf(offset)); } @@ -136,7 +136,7 @@ protected Select getPageSelect(Select select) { } //这里的selectBody一定是PlainSelect if (((PlainSelect) selectBody).getTop() != null) { - throw new PageException("被分页的语句已经包含了Top,不能再通过分页插件进行分页查询!"); + throw new PageException("被分页的语句已经包含了Top,不能再通过分页插件进行分页查询!"); } //获取查询列 List selectItems = getSelectItems((PlainSelect) selectBody); @@ -202,7 +202,7 @@ protected SelectBody wrapSetOperationList(SetOperationList setOperationList) { //获取最后一个plainSelect SelectBody setSelectBody = setOperationList.getSelects().get(setOperationList.getSelects().size() - 1); if (!(setSelectBody instanceof PlainSelect)) { - throw new PageException("目前无法处理该SQL,您可以将该SQL发送给abel533@gmail.com协助作者解决!"); + throw new PageException("目前无法处理该SQL,您可以将该SQL发送给abel533@gmail.com协助作者解决!"); } PlainSelect plainSelect = (PlainSelect) setSelectBody; PlainSelect selectBody = new PlainSelect(); @@ -473,21 +473,21 @@ protected List getOrderByElements(PlainSelect plainSelect, } else { // 查询列不包含别名 if (expression instanceof Column) { - // 查询列为普通列,这时因为列在嵌套查询外时名称中不包含表名,故去除排序列的表名引用 - // 例(仅为解释此处逻辑,不代表最终分页结果): + // 查询列为普通列,这时因为列在嵌套查询外时名称中不包含表名,故去除排序列的表名引用 + // 例(仅为解释此处逻辑,不代表最终分页结果): // SELECT TEST.A FROM TEST ORDER BY TEST.A // SELECT A FROM (SELECT TEST.A FROM TEST) ORDER BY A ((Column) expression).setTable(null); } else { // 查询列不为普通列时(例如函数列)不支持分页 - // 此种情况比较难预测,简单的增加新列容易产生不可预料的结果 - // 而为列增加别名是非常简单的,故此要求排序复杂列必须使用别名 + // 此种情况比较难预测,简单的增加新列容易产生不可预料的结果 + // 而为列增加别名是非常简单的,故此要求排序复杂列必须使用别名 throw new PageException("列 \"" + expression + "\" 需要定义别名"); } } - } else { // OrderByElement 不在查询列表中,需要自动生成一个查询列 + } else { // OrderByElement 不在查询列表中,需要自动生成一个查询列 if (expression instanceof Column) { // OrderByElement 为普通列 Table table = ((Column) expression).getTable(); if (table == null) { // 表名为空 @@ -495,7 +495,7 @@ protected List getOrderByElements(PlainSelect plainSelect, (allColumnsTables.size() == 1 && plainSelect.getJoins() == null) || aliases.contains(((Column) expression).getColumnName())) { // 包含`*`查询列 或者 只有一个 `t.*`列且为单表查询 或者 其实排序列是一个别名 - // 此时排序列其实已经包含在查询列表中了,不需做任何操作 + // 此时排序列其实已经包含在查询列表中了,不需做任何操作 continue; } @@ -503,7 +503,7 @@ protected List getOrderByElements(PlainSelect plainSelect, String tableName = table.getName(); if (allColumns || allColumnsTables.contains(tableName)) { // 包含`*`查询列 或者 包含特定的`t.*`列 - // 此时排序列其实已经包含在查询列表中了,只需去除排序列的表名引 + // 此时排序列其实已经包含在查询列表中了,只需去除排序列的表名引 ((Column) expression).setTable(null); continue; } diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/plugin/CountExecutor.java b/bus-pager/src/main/java/org/aoju/bus/pager/plugin/CountExecutor.java index fbd61802d5..9940f00887 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/plugin/CountExecutor.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/plugin/CountExecutor.java @@ -73,7 +73,7 @@ public static Map getAdditionalParameter(BoundSql boundSql) { } /** - * 尝试获取已经存在的在 MS,提供对手写count和page的支持 + * 尝试获取已经存在的在 MS,提供对手写count和page的支持 * * @param configuration 配置 * @param msId 标识 @@ -90,7 +90,7 @@ public static MappedStatement getExistedMappedStatement(Configuration configurat } /** - * 执行手动设置的 count 查询,该查询支持的参数必须和被分页的方法相同 + * 执行手动设置的 count 查询,该查询支持的参数必须和被分页的方法相同 * * @param executor 执行者 * @param countMs MappedStatement @@ -133,7 +133,7 @@ public static Long executeAutoCount(Dialect dialect, Executor executor, MappedSt String countSql = dialect.getCountSql(countMs, boundSql, parameter, rowBounds, countKey); //countKey.update(countSql); BoundSql countBoundSql = new BoundSql(countMs.getConfiguration(), countSql, boundSql.getParameterMappings(), parameter); - //当使用动态 SQL 时,可能会产生临时的参数,这些参数需要手动设置到新的 BoundSql 中 + //当使用动态 SQL 时,可能会产生临时的参数,这些参数需要手动设置到新的 BoundSql 中 for (String key : additionalParameters.keySet()) { countBoundSql.setAdditionalParameter(key, additionalParameters.get(key)); } @@ -179,7 +179,7 @@ public static List pageQuery(Dialect dialect, Executor executor, MappedSt //执行分页查询 return executor.query(ms, parameter, RowBounds.DEFAULT, resultHandler, pageKey, pageBoundSql); } else { - //不执行分页的情况下,也不执行内存分页 + //不执行分页的情况下,也不执行内存分页 return executor.query(ms, parameter, RowBounds.DEFAULT, resultHandler, cacheKey, boundSql); } } diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/plugin/PageInterceptor.java b/bus-pager/src/main/java/org/aoju/bus/pager/plugin/PageInterceptor.java index 26c39604b4..7fce0a56e5 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/plugin/PageInterceptor.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/plugin/PageInterceptor.java @@ -71,7 +71,7 @@ public Object intercept(Invocation invocation) throws Throwable { Executor executor = (Executor) invocation.getTarget(); CacheKey cacheKey; BoundSql boundSql; - //由于逻辑关系,只会进入一次 + //由于逻辑关系,只会进入一次 if (args.length == 4) { //4 个参数时 boundSql = ms.getBoundSql(parameter); @@ -84,22 +84,22 @@ public Object intercept(Invocation invocation) throws Throwable { checkDialectExists(); List resultList; - //调用方法判断是否需要进行分页,如果不需要,直接返回结果 + //调用方法判断是否需要进行分页,如果不需要,直接返回结果 if (!dialect.skip(ms, parameter, rowBounds)) { //判断是否需要进行 count 查询 if (dialect.beforeCount(ms, parameter, rowBounds)) { //查询总数 Long count = count(executor, ms, parameter, rowBounds, resultHandler, boundSql); - //处理查询总数,返回 true 时继续分页查询,false 时直接返回 + //处理查询总数,返回 true 时继续分页查询,false 时直接返回 if (!dialect.afterCount(count, parameter, rowBounds)) { - //当查询总数为 0 时,直接返回空的结果 + //当查询总数为 0 时,直接返回空的结果 return dialect.afterPage(new ArrayList(), parameter, rowBounds); } } resultList = CountExecutor.pageQuery(dialect, executor, ms, parameter, rowBounds, resultHandler, boundSql, cacheKey); } else { - //rowBounds用参数值,不使用分页插件处理时,仍然支持默认的内存分页 + //rowBounds用参数值,不使用分页插件处理时,仍然支持默认的内存分页 resultList = executor.query(ms, parameter, rowBounds, resultHandler, cacheKey, boundSql); } return dialect.afterPage(resultList, parameter, rowBounds); @@ -111,7 +111,7 @@ public Object intercept(Invocation invocation) throws Throwable { } /** - * Spring bean 方式配置时,如果没有配置属性就不会执行下面的 setProperties 方法,就不会初始化 + * Spring bean 方式配置时,如果没有配置属性就不会执行下面的 setProperties 方法,就不会初始化 *

    * 因此这里会出现 null 的情况 fixed #26 */ diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/plugin/QueryInterceptor.java b/bus-pager/src/main/java/org/aoju/bus/pager/plugin/QueryInterceptor.java index 02bfd3ee95..0b9ecb9859 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/plugin/QueryInterceptor.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/plugin/QueryInterceptor.java @@ -58,7 +58,7 @@ public Object intercept(Invocation invocation) throws Throwable { Executor executor = (Executor) invocation.getTarget(); CacheKey cacheKey; BoundSql boundSql; - //由于逻辑关系,只会进入一次 + //由于逻辑关系,只会进入一次 if (args.length == 4) { //4 个参数时 boundSql = ms.getBoundSql(parameter); @@ -69,7 +69,7 @@ public Object intercept(Invocation invocation) throws Throwable { boundSql = (BoundSql) args[5]; } //TODO 自己要进行的各种处理 - //注:下面的方法可以根据自己的逻辑调用多次,在分页插件中,count 和 proxy 各调用了一次 + //注:下面的方法可以根据自己的逻辑调用多次,在分页插件中,count 和 proxy 各调用了一次 return executor.query(ms, parameter, rowBounds, resultHandler, cacheKey, boundSql); } diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageAutoDialect.java b/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageAutoDialect.java index ddd03677b6..cbf6d51e78 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageAutoDialect.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageAutoDialect.java @@ -64,7 +64,7 @@ public class PageAutoDialect { registerDialectAlias("oracle", OracleDialect.class); registerDialectAlias("db2", Db2Dialect.class); registerDialectAlias("informix", InformixDialect.class); - //解决 informix-sqli #129,仍然保留上面的 + //解决 informix-sqli #129,仍然保留上面的 registerDialectAlias("informix-sqli", InformixDialect.class); registerDialectAlias("sqlserver", SqlServerDialect.class); @@ -77,9 +77,9 @@ public class PageAutoDialect { registerDialectAlias("edb", OracleDialect.class); } - //自动获取dialect,如果没有setProperties或setSqlUtilConfig,也可以正常进行 + //自动获取dialect,如果没有setProperties或setSqlUtilConfig,也可以正常进行 private boolean autoDialect = true; - //多数据源时,获取jdbcurl后是否关闭数据源 + //多数据源时,获取jdbcurl后是否关闭数据源 private boolean closeConn = true; //属性配置 private Properties properties; @@ -93,7 +93,7 @@ public static void registerDialectAlias(String alias, Class d dialectAliasMap.put(alias, dialectClass); } - //多数据动态获取时,每次需要初始化 + //多数据动态获取时,每次需要初始化 public void initDelegateDialect(MappedStatement ms) { if (delegate == null) { if (autoDialect) { @@ -150,14 +150,14 @@ private Class resloveDialectClass(String className) throws Exception { private AbstractHelperDialect initDialect(String dialectClass, Properties properties) { AbstractHelperDialect dialect; if (PageFromObject.isEmpty(dialectClass)) { - throw new PageException("使用 PageContext 分页插件时,必须设置 general 属性"); + throw new PageException("使用 PageContext 分页插件时,必须设置 general 属性"); } try { Class sqlDialectClass = resloveDialectClass(dialectClass); if (AbstractHelperDialect.class.isAssignableFrom(sqlDialectClass)) { dialect = (AbstractHelperDialect) sqlDialectClass.newInstance(); } else { - throw new PageException("使用 PageContext 时,方言必须是实现 " + AbstractHelperDialect.class.getCanonicalName() + " 接口的实现类!"); + throw new PageException("使用 PageContext 时,方言必须是实现 " + AbstractHelperDialect.class.getCanonicalName() + " 接口的实现类!"); } } catch (Exception e) { throw new PageException("初始化 general [" + dialectClass + "]时出错:" + e.getMessage(), e); @@ -211,11 +211,11 @@ private AbstractHelperDialect getDialect(MappedStatement ms) { return urlDialectMap.get(url); } if (PageFromObject.isEmpty(url)) { - throw new PageException("无法自动获取jdbcUrl,请在分页插件中配置dialect参数!"); + throw new PageException("无法自动获取jdbcUrl,请在分页插件中配置dialect参数!"); } String dialectStr = fromJdbcUrl(url); if (dialectStr == null) { - throw new PageException("无法自动获取数据库类型,请通过 helperDialect 参数指定!"); + throw new PageException("无法自动获取数据库类型,请通过 helperDialect 参数指定!"); } AbstractHelperDialect dialect = initDialect(dialectStr, properties); urlDialectMap.put(url, dialect); @@ -226,12 +226,12 @@ private AbstractHelperDialect getDialect(MappedStatement ms) { } public void setProperties(Properties properties) { - //多数据源时,获取 jdbcurl 后是否关闭数据源 + //多数据源时,获取 jdbcurl 后是否关闭数据源 String closeConn = properties.getProperty("closeConn"); if (PageFromObject.isNotEmpty(closeConn)) { this.closeConn = Boolean.parseBoolean(closeConn); } - //使用 sqlserver2012 作为默认分页方式,这种情况在动态数据源时方便使用 + //使用 sqlserver2012 作为默认分页方式,这种情况在动态数据源时方便使用 String useSqlserver2012 = properties.getProperty("useSqlserver2012"); if (PageFromObject.isNotEmpty(useSqlserver2012) && Boolean.parseBoolean(useSqlserver2012)) { registerDialectAlias("sqlserver", SqlServer2012Dialect.class); @@ -243,7 +243,7 @@ public void setProperties(Properties properties) { for (int i = 0; i < alias.length; i++) { String[] kv = alias[i].split("="); if (kv.length != 2) { - throw new IllegalArgumentException("dialectAlias 参数配置错误," + + throw new IllegalArgumentException("dialectAlias 参数配置错误," + "请按照 alias1=xx.dialectClass;alias2=dialectClass2 的形式进行配置!"); } for (int j = 0; j < kv.length; j++) { @@ -257,7 +257,7 @@ public void setProperties(Properties properties) { } } } - //指定的 Helper 数据库方言,和 不同 + //指定的 Helper 数据库方言,和 不同 String dialect = properties.getProperty("helperDialect"); //运行时获取数据源 String runtimeDialect = properties.getProperty("autoRuntimeDialect"); diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageMethod.java b/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageMethod.java index ea6e5365ad..c6517309c1 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageMethod.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageMethod.java @@ -145,7 +145,7 @@ public static Page startPage(int pageNum, int pageSize, String orderBy) { * @param pageSize 每页显示数量 * @param count 是否进行count查询 * @param reasonable 分页合理化,null时用默认配置 - * @param pageSizeZero true且pageSize=0时返回全部结果,false时分页,null时用默认配置 + * @param pageSizeZero true且pageSize=0时返回全部结果,false时分页,null时用默认配置 * @return 结果 */ public static Page startPage(int pageNum, int pageSize, boolean count, Boolean reasonable, Boolean pageSizeZero) { @@ -165,7 +165,7 @@ public static Page startPage(int pageNum, int pageSize, boolean count, Bo * 开始分页 * * @param 对象 - * @param offset 起始位置,偏移位置 + * @param offset 起始位置,偏移位置 * @param limit 每页显示数量 * @return 结果 */ @@ -177,7 +177,7 @@ public static Page offsetPage(int offset, int limit) { * 开始分页 * * @param 对象 - * @param offset 起始位置,偏移位置 + * @param offset 起始位置,偏移位置 * @param limit 每页显示数量 * @param count 是否进行count查询 * @return 结果 @@ -216,7 +216,7 @@ public static void orderBy(String orderBy) { * @param properties 插件属性 */ protected static void setStaticProperties(Properties properties) { - //defaultCount,这是一个全局生效的参数,多数据源时也是统一的行为 + //defaultCount,这是一个全局生效的参数,多数据源时也是统一的行为 if (properties != null) { DEFAULT_COUNT = Boolean.valueOf(properties.getProperty("defaultCount", "true")); } diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageParams.java b/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageParams.java index 6b4ea1c74a..c6b1928a8f 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageParams.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/proxy/PageParams.java @@ -45,11 +45,11 @@ public class PageParams { protected boolean offsetAsPageNum = false; //RowBounds是否进行count查询 - 默认不查询 protected boolean rowBoundsWithCount = false; - //当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果 + //当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果 protected boolean pageSizeZero = false; //分页合理化 protected boolean reasonable = false; - //是否支持接口参数来传递分页参数,默认false + //是否支持接口参数来传递分页参数,默认false protected boolean supportMethodsArguments = false; //默认count(0) protected String countColumn = "0"; @@ -69,7 +69,7 @@ public Page getPage(Object parameterObject, RowBounds rowBounds) { page = new Page(rowBounds.getOffset(), rowBounds.getLimit(), rowBoundsWithCount); } else { page = new Page(new int[]{rowBounds.getOffset(), rowBounds.getLimit()}, rowBoundsWithCount); - //offsetAsPageNum=false的时候,由于PageNum问题,不能使用reasonable,这里会强制为false + //offsetAsPageNum=false的时候,由于PageNum问题,不能使用reasonable,这里会强制为false page.setReasonable(false); } if (rowBounds instanceof PageRowBounds) { @@ -92,7 +92,7 @@ public Page getPage(Object parameterObject, RowBounds rowBounds) { if (page.getReasonable() == null) { page.setReasonable(reasonable); } - //当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果 + //当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页,返回全部结果 if (page.getPageSizeZero() == null) { page.setPageSizeZero(pageSizeZero); } @@ -106,13 +106,13 @@ public void setProperties(Properties properties) { //RowBounds方式是否做count查询 String rowBoundsWithCount = properties.getProperty("rowBoundsWithCount"); this.rowBoundsWithCount = Boolean.parseBoolean(rowBoundsWithCount); - //当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页 + //当设置为true的时候,如果pagesize设置为0(或RowBounds的limit=0),就不执行分页 String pageSizeZero = properties.getProperty("pageSizeZero"); this.pageSizeZero = Boolean.parseBoolean(pageSizeZero); - //分页合理化,true开启,如果分页参数不合理会自动修正。默认false不启用 + //分页合理化,true开启,如果分页参数不合理会自动修正 默认false不启用 String reasonable = properties.getProperty("reasonable"); this.reasonable = Boolean.parseBoolean(reasonable); - //是否支持接口参数来传递分页参数,默认false + //是否支持接口参数来传递分页参数,默认false String supportMethodsArguments = properties.getProperty("supportMethodsArguments"); this.supportMethodsArguments = Boolean.parseBoolean(supportMethodsArguments); //默认count列 @@ -120,7 +120,7 @@ public void setProperties(Properties properties) { if (PageFromObject.isNotEmpty(countColumn)) { this.countColumn = countColumn; } - //当offsetAsPageNum=false的时候,不能 + //当offsetAsPageNum=false的时候,不能 //参数映射 PageFromObject.setParams(properties.getProperty("params")); } diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/reflect/MetaObject.java b/bus-pager/src/main/java/org/aoju/bus/pager/reflect/MetaObject.java index ae91193f1b..51f959ae63 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/reflect/MetaObject.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/reflect/MetaObject.java @@ -40,7 +40,7 @@ public class MetaObject { static { try { - // 高版本中的 MetaObject.forObject 有 4 个参数,低版本是 1 个 + // 高版本中的 MetaObject.forObject 有 4 个参数,低版本是 1 个 //先判断当前使用的是否为高版本 Class.forName("org.apache.ibatis.reflection.ReflectorFactory"); // 下面这个 MetaObjectWithCache 带反射的缓存信息 diff --git a/bus-pager/src/main/java/org/aoju/bus/pager/reflect/MetaObjectWithCache.java b/bus-pager/src/main/java/org/aoju/bus/pager/reflect/MetaObjectWithCache.java index 12d533a91e..a78bca6ae6 100755 --- a/bus-pager/src/main/java/org/aoju/bus/pager/reflect/MetaObjectWithCache.java +++ b/bus-pager/src/main/java/org/aoju/bus/pager/reflect/MetaObjectWithCache.java @@ -33,7 +33,7 @@ import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory; /** - * 反射带缓存,提高反射性能 + * 反射带缓存,提高反射性能 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-proxy/src/main/java/org/aoju/bus/proxy/Builder.java b/bus-proxy/src/main/java/org/aoju/bus/proxy/Builder.java index 67d45b08ce..f6dd3006cd 100755 --- a/bus-proxy/src/main/java/org/aoju/bus/proxy/Builder.java +++ b/bus-proxy/src/main/java/org/aoju/bus/proxy/Builder.java @@ -127,15 +127,15 @@ public static T proxy(T target, Aspect aspect) { * 创建动态代理对象
    * 动态代理对象的创建原理是:
    * 假设创建的代理对象名为 $Proxy0
    - * 1、根据传入的interfaces动态生成一个类,实现interfaces中的接口
    - * 2、通过传入的classloder将刚生成的类加载到jvm中。即将$Proxy0类load
    - * 3、调用$Proxy0的$Proxy0(InvocationHandler)构造函数 创建$Proxy0的对象,并且用interfaces参数遍历其所有接口的方法,这些实现方法的实现本质上是通过反射调用被代理对象的方法
    - * 4、将$Proxy0的实例返回给客户端。
    - * 5、当调用代理类的相应方法时,相当于调用 {@link InvocationHandler#invoke(Object, java.lang.reflect.Method, Object[])} 方法 + * 1、根据传入的interfaces动态生成一个类,实现interfaces中的接口
    + * 2、通过传入的classloder将刚生成的类加载到jvm中 即将$Proxy0类load
    + * 3、调用$Proxy0的$Proxy0(InvocationHandler)构造函数 创建$Proxy0的对象,并且用interfaces参数遍历其所有接口的方法,这些实现方法的实现本质上是通过反射调用被代理对象的方法
    + * 4、将$Proxy0的实例返回给客户端
    + * 5、当调用代理类的相应方法时,相当于调用 {@link InvocationHandler#invoke(Object, java.lang.reflect.Method, Object[])} 方法 * * @param 被代理对象类型 * @param classloader 被代理类对应的ClassLoader - * @param invocationHandler {@link InvocationHandler} ,被代理类通过实现此接口提供动态代理功能 + * @param invocationHandler {@link InvocationHandler} ,被代理类通过实现此接口提供动态代理功能 * @param interfaces 代理类中需要实现的被代理类的接口方法 * @return 代理类 */ @@ -147,7 +147,7 @@ public static T newProxyInstance(ClassLoader classloader, InvocationHandler * 创建动态代理对象 * * @param 被代理对象类型 - * @param invocationHandler {@link InvocationHandler} ,被代理类通过实现此接口提供动态代理功能 + * @param invocationHandler {@link InvocationHandler} ,被代理类通过实现此接口提供动态代理功能 * @param interfaces 代理类中需要实现的被代理类的接口方法 * @return 代理类 */ diff --git a/bus-proxy/src/main/java/org/aoju/bus/proxy/aspects/Aspect.java b/bus-proxy/src/main/java/org/aoju/bus/proxy/aspects/Aspect.java index 797f67a381..589c04a171 100755 --- a/bus-proxy/src/main/java/org/aoju/bus/proxy/aspects/Aspect.java +++ b/bus-proxy/src/main/java/org/aoju/bus/proxy/aspects/Aspect.java @@ -32,7 +32,7 @@ public interface Aspect { * @return 是否允许返回值(接下来的操作) * @see Aspect#afterException 返回true,则不会执行此操作 * 如果 - * @see Aspect#afterException 返回false,则无论target.method是否抛出异常,均会执行此操作 + * @see Aspect#afterException 返回false,则无论target.method是否抛出异常,均会执行此操作 */ boolean after(Object target, Method method, Object[] args, Object returnVal); diff --git a/bus-proxy/src/main/java/org/aoju/bus/proxy/aspects/SimpleAspect.java b/bus-proxy/src/main/java/org/aoju/bus/proxy/aspects/SimpleAspect.java index db1d1513d8..0f85f5f63f 100755 --- a/bus-proxy/src/main/java/org/aoju/bus/proxy/aspects/SimpleAspect.java +++ b/bus-proxy/src/main/java/org/aoju/bus/proxy/aspects/SimpleAspect.java @@ -4,7 +4,7 @@ import java.lang.reflect.Method; /** - * 简单切面类,不做任何操作 + * 简单切面类,不做任何操作 * 可以继承此类实现自己需要的方法即可 * * @author Kimi Liu @@ -30,7 +30,7 @@ public boolean before(Object target, Method method, Object[] args) { * @return 是否允许返回值(接下来的操作) * @see Aspect#afterException 返回true,则不会执行此操作 * 如果 - * @see Aspect#afterException 返回false,则无论target.method是否抛出异常,均会执行此操作 + * @see Aspect#afterException 返回false,则无论target.method是否抛出异常,均会执行此操作 */ public boolean after(Object target, Method method, Object[] args) { return after(target, method, args, null); diff --git a/bus-proxy/src/main/java/org/aoju/bus/proxy/factory/AbstractFactory.java b/bus-proxy/src/main/java/org/aoju/bus/proxy/factory/AbstractFactory.java index 7acaae11a6..063310b13e 100755 --- a/bus-proxy/src/main/java/org/aoju/bus/proxy/factory/AbstractFactory.java +++ b/bus-proxy/src/main/java/org/aoju/bus/proxy/factory/AbstractFactory.java @@ -164,15 +164,15 @@ public static T proxy(T target, Class aspectClass) { * 创建动态代理对象
    * 动态代理对象的创建原理是:
    * 假设创建的代理对象名为 $Proxy0
    - * 1、根据传入的interfaces动态生成一个类,实现interfaces中的接口
    - * 2、通过传入的classloder将刚生成的类加载到jvm中。即将$Proxy0类load
    - * 3、调用$Proxy0的$Proxy0(InvocationHandler)构造函数 创建$Proxy0的对象,并且用interfaces参数遍历其所有接口的方法,这些实现方法的实现本质上是通过反射调用被代理对象的方法
    - * 4、将$Proxy0的实例返回给客户端。
    - * 5、当调用代理类的相应方法时,相当于调用 {@link InvocationHandler#invoke(Object, java.lang.reflect.Method, Object[])} 方法 + * 1、根据传入的interfaces动态生成一个类,实现interfaces中的接口
    + * 2、通过传入的classloder将刚生成的类加载到jvm中 即将$Proxy0类load
    + * 3、调用$Proxy0的$Proxy0(InvocationHandler)构造函数 创建$Proxy0的对象,并且用interfaces参数遍历其所有接口的方法,这些实现方法的实现本质上是通过反射调用被代理对象的方法
    + * 4、将$Proxy0的实例返回给客户端
    + * 5、当调用代理类的相应方法时,相当于调用 {@link InvocationHandler#invoke(Object, java.lang.reflect.Method, Object[])} 方法 * * @param 被代理对象类型 * @param classloader 被代理类对应的ClassLoader - * @param invocationHandler {@link InvocationHandler} ,被代理类通过实现此接口提供动态代理功能 + * @param invocationHandler {@link InvocationHandler} ,被代理类通过实现此接口提供动态代理功能 * @param interfaces 代理类中需要实现的被代理类的接口方法 * @return 代理类 */ @@ -184,7 +184,7 @@ public static T newProxyInstance(ClassLoader classloader, InvocationHandler * 创建动态代理对象 * * @param 被代理对象类型 - * @param invocationHandler {@link InvocationHandler} ,被代理类通过实现此接口提供动态代理功能 + * @param invocationHandler {@link InvocationHandler} ,被代理类通过实现此接口提供动态代理功能 * @param interfaces 代理类中需要实现的被代理类的接口方法 * @return 代理类 */ diff --git a/bus-proxy/src/main/java/org/aoju/bus/proxy/intercept/CglibInterceptor.java b/bus-proxy/src/main/java/org/aoju/bus/proxy/intercept/CglibInterceptor.java index ff14f91ef0..58f612657a 100755 --- a/bus-proxy/src/main/java/org/aoju/bus/proxy/intercept/CglibInterceptor.java +++ b/bus-proxy/src/main/java/org/aoju/bus/proxy/intercept/CglibInterceptor.java @@ -43,7 +43,7 @@ public Object intercept(Object obj, Method method, Object[] args, MethodProxy pr try { result = proxy.invokeSuper(obj, args); } catch (InvocationTargetException e) { - // 异常回调(只捕获业务代码导致的异常,而非反射导致的异常) + // 异常回调(只捕获业务代码导致的异常,而非反射导致的异常) if (aspect.afterException(target, method, args, e.getTargetException())) { throw e; } diff --git a/bus-proxy/src/main/java/org/aoju/bus/proxy/intercept/JavassistInterceptor.java b/bus-proxy/src/main/java/org/aoju/bus/proxy/intercept/JavassistInterceptor.java index d682c98c9f..683fa6263c 100755 --- a/bus-proxy/src/main/java/org/aoju/bus/proxy/intercept/JavassistInterceptor.java +++ b/bus-proxy/src/main/java/org/aoju/bus/proxy/intercept/JavassistInterceptor.java @@ -52,7 +52,7 @@ public Object invoke(Object proxy, Method method, Object[] args) throws Throwabl try { result = method.invoke(ClassUtils.isStatic(method) ? null : target, args); } catch (InvocationTargetException e) { - // 异常回调(只捕获业务代码导致的异常,而非反射导致的异常) + // 异常回调(只捕获业务代码导致的异常,而非反射导致的异常) if (aspect.afterException(target, method, args, e.getTargetException())) { throw e; } diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Builder.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Builder.java index 595edaa012..54555e849e 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Builder.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Builder.java @@ -72,8 +72,8 @@ public final class Builder { /** * 脱敏对象 *

    - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param object 原始对象 * @param 泛型 @@ -86,8 +86,8 @@ public static T on(Object object) { /** * 脱敏对象 *

    - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param object 原始对象 * @param clone 是否克隆 @@ -101,8 +101,8 @@ public static T on(Object object, boolean clone) { /** * 脱敏对象 *

    - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param object 原始对象 * @param annotation 注解信息 @@ -116,8 +116,8 @@ public static T on(Object object, Annotation annotation) { /** * 脱敏对象 *

    - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param object 原始对象 * @param annotation 注解信息 @@ -131,7 +131,7 @@ public static T on(Object object, Annotation annotation, boolean clone) { /** * 返回脱敏后的对象 json - * null 对象,返回字符串 "null" + * null 对象,返回字符串 "null" * * @param object 对象 * @return 结果 json diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Filter.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Filter.java index fa6a2f7eb0..094f40919f 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Filter.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Filter.java @@ -41,10 +41,10 @@ /** * 默认的上下文过滤器 *

    - * {@link Entry} 放在对象时,则不用特殊处理。 - * 只需要处理 集合、数组集合。 + * {@link Entry} 放在对象时,则不用特殊处理 + * 只需要处理 集合、数组集合 * 注意: 和 {@link Builder#on(Object)} 的区别 - * 因为 FastJSON 本身的转换问题,如果对象中存储的是集合对象列表,会导致显示不是信息本身。 + * 因为 FastJSON 本身的转换问题,如果对象中存储的是集合对象列表,会导致显示不是信息本身 * * @author Kimi Liu * @version 5.2.2 @@ -81,7 +81,7 @@ private static ConditionProvider getConditionOpt(final Annotation[] annotations) @Override public Object process(BeanContext context, Object object, String name, Object value) { - // 对象为 MAP 的时候,FastJson map 对应的 context 为 NULL + // 对象为 MAP 的时候,FastJson map 对应的 context 为 NULL if (ObjectUtils.isNull(context)) { return value; } @@ -95,7 +95,7 @@ public Object process(BeanContext context, Object object, String name, Object va sensitiveContext.setBeanClass(clazz); sensitiveContext.setAllFieldList(fieldList); - // 这里将缺少对于列表/集合/数组 的处理。可以单独实现。 + // 这里将缺少对于列表/集合/数组 的处理 可以单独实现 // 设置当前处理的字段 Entry sensitiveEntry = field.getAnnotation(Entry.class); if (ObjectUtils.isNull(sensitiveEntry)) { @@ -106,7 +106,7 @@ public Object process(BeanContext context, Object object, String name, Object va //2. 处理 @Entry 注解 final Class fieldTypeClass = field.getType(); if (TypeUtils.isJavaBean(fieldTypeClass)) { - //不作处理,因为 json 本身就会进行递归处理 + //不作处理,因为 json 本身就会进行递归处理 return value; } if (TypeUtils.isMap(fieldTypeClass)) { @@ -121,7 +121,7 @@ public Object process(BeanContext context, Object object, String name, Object va final Class entryFieldClass = firstArrayEntry.getClass(); if (isBaseType(entryFieldClass)) { - //2, 基础值,直接循环设置即可 + //2, 基础值,直接循环设置即可 final int arrayLength = arrays.length; Object newArray = Array.newInstance(entryFieldClass, arrayLength); for (int i = 0; i < arrayLength; i++) { @@ -142,7 +142,7 @@ public Object process(BeanContext context, Object object, String name, Object va Object firstCollectionEntry = CollUtils.firstNotNullElem(entryCollection).get(); if (isBaseType(firstCollectionEntry.getClass())) { - //2, 基础值,直接循环设置即可 + //2, 基础值,直接循环设置即可 List newResultList = new ArrayList<>(entryCollection.size()); for (Object entry : entryCollection) { sensitiveContext.setEntry(entry); diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Provider.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Provider.java index 8986d58af8..6365f8733a 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Provider.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Provider.java @@ -106,9 +106,9 @@ public static String parseMaptoJSONString(Map params) { /** * 对象进行脱敏操作 - * 原始对象不变,返回脱敏后的新对象 + * 原始对象不变,返回脱敏后的新对象 * 1. 为什么这么设计? - * 不能因为脱敏,就导致代码中的对象被改变。否则代码逻辑会出现问题。 + * 不能因为脱敏,就导致代码中的对象被改变 否则代码逻辑会出现问题 * * @param object 原始对象 * @param annotation 注解信息 @@ -130,7 +130,7 @@ public T on(T object, Annotation annotation, boolean clone) { final Context context = new Context(); if (clone) { - // 2. 深度复制,不改变原始对象 + // 2. 深度复制,不改变原始对象 T copy = clone(object); handleClassField(context, copy, clazz); return copy; @@ -174,7 +174,7 @@ public String json(T object, Annotation annotation) { private void handleClassField(final Context context, final Object copyObject, final Class clazz) { - // 每一个实体对应的字段,只对当前 clazz 生效。 + // 每一个实体对应的字段,只对当前 clazz 生效 List fieldList = ClassUtils.getAllFieldList(clazz); context.setAllFieldList(fieldList); context.setCurrentObject(copyObject); @@ -204,13 +204,13 @@ private void handleClassField(final Context context, Object firstArrayEntry = arrays[0]; final Class entryFieldClass = firstArrayEntry.getClass(); - //1. 如果需要特殊处理,则循环特殊处理 + //1. 如果需要特殊处理,则循环特殊处理 if (needHandleEntryType(entryFieldClass)) { for (Object arrayEntry : arrays) { handleClassField(context, arrayEntry, entryFieldClass); } } else { - //2, 基础值,直接循环设置即可 + //2, 基础值,直接循环设置即可 final int arrayLength = arrays.length; Object newArray = Array.newInstance(entryFieldClass, arrayLength); for (int i = 0; i < arrayLength; i++) { @@ -228,13 +228,13 @@ private void handleClassField(final Context context, Object firstCollectionEntry = entryCollection.iterator().next(); Class collectionEntryClass = firstCollectionEntry.getClass(); - //1. 如果需要特殊处理,则循环特殊处理 + //1. 如果需要特殊处理,则循环特殊处理 if (needHandleEntryType(collectionEntryClass)) { for (Object collectionEntry : entryCollection) { handleClassField(context, collectionEntry, collectionEntryClass); } } else { - //2, 基础值,直接循环设置即可 + //2, 基础值,直接循环设置即可 List newResultList = new ArrayList<>(entryCollection.size()); for (Object entry : entryCollection) { Object result = handleSensitiveEntry(context, entry, field); @@ -244,8 +244,8 @@ private void handleClassField(final Context context, } } } else { - // 1. 常见的基本类型,不做处理 - // 2. 如果为 map,暂时不支持处理。后期可以考虑支持 value 的脱敏,或者 key 的脱敏 + // 1. 常见的基本类型,不做处理 + // 2. 如果为 map,暂时不支持处理 后期可以考虑支持 value 的脱敏,或者 key 的脱敏 // 3. 其他 // 处理单个字段脱敏信息 handleSensitive(context, copyObject, field); @@ -263,7 +263,7 @@ private void handleClassField(final Context context, /** * 处理需脱敏的单个对象 *

    - * 1. 为了简化操作,所有的自定义注解使用多个,不生效。 + * 1. 为了简化操作,所有的自定义注解使用多个,不生效 * 2. 生效顺序如下: * (1)Sensitive * (2)系统内置自定义注解 diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Registry.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Registry.java index 305e68a808..1308d6e6dc 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Registry.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/Registry.java @@ -104,7 +104,7 @@ public static StrategyProvider require(Builder.Type name) { public static StrategyProvider require(final Class annotationClass) { StrategyProvider strategy = STRATEGY_CACHE.get(annotationClass); if (ObjectUtils.isEmpty(strategy)) { - throw new InstrumentException("不支持的系统内置方法,用户请勿在自定义注解中使用[BuiltInStrategy]!"); + throw new InstrumentException("不支持的系统内置方法,用户请勿在自定义注解中使用[BuiltInStrategy]!"); } return strategy; } @@ -136,7 +136,7 @@ public static StrategyProvider require(final Annotation[] annotations) { * 是否包含指定名称策略 * * @param name 策略名称 - * @return true:包含, false:不包含 + * @return true:包含, false:不包含 */ public boolean contains(String name) { return STRATEGY_CACHE.containsKey(name); diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Entry.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Entry.java index 41af1c5cb9..ee18f70f49 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Entry.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Entry.java @@ -26,10 +26,10 @@ import java.lang.annotation.*; /** - * 如果对象中属性为另外一个对象(集合),则可以使用这个注解指定。 - * 1. 如果属性为 Iterable 的子类集合,则当做列表处理,遍历其中的对象 - * 2. 如果是普通对象,则处理对象中的脱敏信息 - * 3. 如果是普通字段/MAP,则不做处理 + * 如果对象中属性为另外一个对象(集合),则可以使用这个注解指定 + * 1. 如果属性为 Iterable 的子类集合,则当做列表处理,遍历其中的对象 + * 2. 如果是普通对象,则处理对象中的脱敏信息 + * 3. 如果是普通字段/MAP,则不做处理 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Sensitive.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Sensitive.java index f61d9f83a6..53439d0b8b 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Sensitive.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Sensitive.java @@ -28,7 +28,7 @@ import java.lang.annotation.*; /** - * 数据脱敏,具体如下: + * 数据脱敏,具体如下: * 1.数据库级别脱敏加密 * SensitiveResultSetHandler 解密脱敏 * SensitiveStatementHandler 脱敏加密 diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Shield.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Shield.java index 68fa92087e..5a5424a6ca 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Shield.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Shield.java @@ -34,13 +34,13 @@ /** - * 标注在字段上,用以说明字段上那些类型需要脱敏 - * 脱敏后,插件在写请求后对数据脱敏后存在数据库,对读请求不拦截 + * 标注在字段上,用以说明字段上那些类型需要脱敏 + * 脱敏后,插件在写请求后对数据脱敏后存在数据库,对读请求不拦截 * 设计的考虑: - * 本来想过将生效条件单独抽离为一个注解,这样可以达到条件注解的复用。 - * 但是有一个缺点,当指定多个策略时,条件的注解就会太宽泛,无法保证精细到每一个策略生效的场景。 + * 本来想过将生效条件单独抽离为一个注解,这样可以达到条件注解的复用 + * 但是有一个缺点,当指定多个策略时,条件的注解就会太宽泛,无法保证精细到每一个策略生效的场景 * 平衡的方式: - * 在 Strategy 注解中,可以指定策略。默认是全部,如果指定,则只针对其中的某个策略生效。 + * 在 Strategy 注解中,可以指定策略 默认是全部,如果指定,则只针对其中的某个策略生效 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Strategy.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Strategy.java index 0865a0a97c..844c95423d 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Strategy.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/annotation/Strategy.java @@ -30,8 +30,8 @@ /** * 脱敏策略注解 *

    - * 1.自定义的策略默认生效。 - * 2.如果有多个策略, 则优先执行一次满足条件的策略。 + * 1.自定义的策略默认生效 + * 2.如果有多个策略, 则优先执行一次满足条件的策略 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/provider/AbstractProvider.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/provider/AbstractProvider.java index 09f66e041f..40561e82f2 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/provider/AbstractProvider.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/provider/AbstractProvider.java @@ -61,7 +61,7 @@ public static String build(Builder.Mode mode, } return resultBuilder.toString(); } - // 仅有两个字符,不能采用遮挡中间的做法 + // 仅有两个字符,不能采用遮挡中间的做法 if (length == 2) { return resultBuilder.append(rawVal, 0, 1) .append(shadow).toString(); diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/AddressStrategy.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/AddressStrategy.java index d5cba691ff..8650d22a4f 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/AddressStrategy.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/AddressStrategy.java @@ -31,7 +31,7 @@ /** * 收货地址脱敏处理类 - * 地址只显示到地区,不显示详细地址;我们要对个人信息增强保护 + * 地址只显示到地区,不显示详细地址;我们要对个人信息增强保护 * 例子:北京市海淀区**** * * @author Kimi Liu diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/BuiltInStrategy.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/BuiltInStrategy.java index 2de4c02030..dd6bc188b6 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/BuiltInStrategy.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/BuiltInStrategy.java @@ -29,10 +29,10 @@ /** * 用于标识为系统内置的注解实现方式 *

    - * 这个类的实现并不重要,只是为了尽可能降低 annotation 对于实现的依赖。 - * 注意:如果不是系统内置的注解,请勿使用这个标识,否则无法找到对应实现。 - * 在 hibernate-validator 中使用的是数组,然后默认指定 {},但是缺陷也很明显, - * 明明是数组,实现却只能是一个 + * 这个类的实现并不重要,只是为了尽可能降低 annotation 对于实现的依赖 + * 注意:如果不是系统内置的注解,请勿使用这个标识,否则无法找到对应实现 + * 在 hibernate-validator 中使用的是数组,然后默认指定 {},但是缺陷也很明显, + * 明明是数组,实现却只能是一个 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/CitizenIdStrategy.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/CitizenIdStrategy.java index e8a874ac60..e444080f68 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/CitizenIdStrategy.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/CitizenIdStrategy.java @@ -35,7 +35,7 @@ *

    * 脱敏规则:123002**********01 *

    - * 只保留前6位和后2位,其他用*代替。 + * 只保留前6位和后2位,其他用*代替 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/CnapsStrategy.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/CnapsStrategy.java index fa9abc50c7..749443a203 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/CnapsStrategy.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/CnapsStrategy.java @@ -31,7 +31,7 @@ /** * 公司开户银行联号 - * 前四位明文,后面脱敏 + * 前四位明文,后面脱敏 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/EmailStrategy.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/EmailStrategy.java index 80cb527a05..79a0413ce0 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/EmailStrategy.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/EmailStrategy.java @@ -34,7 +34,7 @@ /** * 邮箱脱敏策略 * 脱敏规则: - * 保留前三位,中间隐藏4位。其他正常显示 + * 保留前三位,中间隐藏4位 其他正常显示 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/PayStrategy.java b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/PayStrategy.java index fc53a45d13..36fe081746 100755 --- a/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/PayStrategy.java +++ b/bus-sensitive/src/main/java/org/aoju/bus/sensitive/strategy/PayStrategy.java @@ -32,7 +32,7 @@ /** * 签约协议号脱敏方式 * 19031317273364059018 - * 签约协议号脱敏格式为前6位后6位保留明文,中间脱敏 + * 签约协议号脱敏格式为前6位后6位保留明文,中间脱敏 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-setting/src/main/java/org/aoju/bus/setting/AbsSetting.java b/bus-setting/src/main/java/org/aoju/bus/setting/AbsSetting.java index 0c3acd7790..e39bf9ab58 100755 --- a/bus-setting/src/main/java/org/aoju/bus/setting/AbsSetting.java +++ b/bus-setting/src/main/java/org/aoju/bus/setting/AbsSetting.java @@ -76,7 +76,7 @@ public String getStr(String key, String group, String defaultValue) { public abstract String getByGroup(String key, String group); /** - * 带有日志提示的get,如果没有定义指定的KEY,则打印debug日志 + * 带有日志提示的get,如果没有定义指定的KEY,则打印debug日志 * * @param key 键 * @return 值 @@ -86,7 +86,7 @@ public String getWithLog(String key) { } /** - * 带有日志提示的get,如果没有定义指定的KEY,则打印debug日志 + * 带有日志提示的get,如果没有定义指定的KEY,则打印debug日志 * * @param key 键 * @param group 分组 @@ -257,7 +257,7 @@ public Double getDouble(String key, String group, Double defaultValue) { } /** - * 将setting中的键值关系映射到对象中,原理是调用对象对应的set方法 + * 将setting中的键值关系映射到对象中,原理是调用对象对应的set方法 * 只支持基本类型的转换 * * @param group 分组 @@ -281,7 +281,7 @@ public boolean containsKey(String key) { } /** - * 将setting中的键值关系映射到对象中,原理是调用对象对应的set方法 + * 将setting中的键值关系映射到对象中,原理是调用对象对应的set方法 * 只支持基本类型的转换 * * @param bean Bean diff --git a/bus-setting/src/main/java/org/aoju/bus/setting/GroupedMap.java b/bus-setting/src/main/java/org/aoju/bus/setting/GroupedMap.java index 587328a4e4..c23b9cb566 100755 --- a/bus-setting/src/main/java/org/aoju/bus/setting/GroupedMap.java +++ b/bus-setting/src/main/java/org/aoju/bus/setting/GroupedMap.java @@ -41,11 +41,11 @@ public class GroupedMap extends LinkedHashMap map = this.get(StringUtils.nullToEmpty(group)); @@ -76,7 +76,7 @@ public int size() { * @param group 分组 * @param key 键 * @param value 值 - * @return 此key之前存在的值,如果没有返回null + * @return 此key之前存在的值, 如果没有返回null */ public String put(String group, String key, String value) { group = StringUtils.nullToEmpty(group).trim(); @@ -108,7 +108,7 @@ public GroupedMap putAll(String group, Map m * * @param group 分组 * @param key 键 - * @return 被删除的值,如果值不存在,返回null + * @return 被删除的值, 如果值不存在, 返回null */ public String remove(String group, String key) { group = StringUtils.nullToEmpty(group).trim(); @@ -135,9 +135,9 @@ public boolean isEmpty(String group) { } /** - * 是否为空,如果多个分组同时为空,也按照空处理 + * 是否为空,如果多个分组同时为空,也按照空处理 * - * @return 是否为空,如果多个分组同时为空,也按照空处理 + * @return 是否为空, 如果多个分组同时为空, 也按照空处理 */ public boolean isEmpty() { return this.size() == 0; diff --git a/bus-setting/src/main/java/org/aoju/bus/setting/GroupedSet.java b/bus-setting/src/main/java/org/aoju/bus/setting/GroupedSet.java index 13dfe99704..bd667092c7 100755 --- a/bus-setting/src/main/java/org/aoju/bus/setting/GroupedSet.java +++ b/bus-setting/src/main/java/org/aoju/bus/setting/GroupedSet.java @@ -37,8 +37,8 @@ /** * 分组化的Set集合类 - * 在配置文件中可以用中括号分隔不同的分组,每个分组会放在独立的Set中,用group区别 - * 无分组的集合和`[]`分组集合会合并成员,重名的分组也会合并成员 + * 在配置文件中可以用中括号分隔不同的分组,每个分组会放在独立的Set中,用group区别 + * 无分组的集合和`[]`分组集合会合并成员,重名的分组也会合并成员 * 分组配置文件如下: * *

    @@ -60,7 +60,7 @@
     public class GroupedSet extends HashMap> {
     
         /**
    -     * 注释符号(当有此符号在行首,表示此行为注释)
    +     * 注释符号(当有此符号在行首,表示此行为注释)
          */
         private final static String COMMENT_FLAG_PRE = "#";
         /**
    @@ -88,7 +88,7 @@ public GroupedSet(Charset charset) {
         }
     
         /**
    -     * 构造,使用相对于Class文件根目录的相对路径
    +     * 构造,使用相对于Class文件根目录的相对路径
          *
          * @param pathBaseClassLoader 相对路径(相对于当前项目的classes路径)
          * @param charset             字符集
    @@ -123,7 +123,7 @@ public GroupedSet(File configFile, Charset charset) {
         }
     
         /**
    -     * 构造,相对于classes读取文件
    +     * 构造,相对于classes读取文件
          *
          * @param path    相对路径
          * @param clazz   基准类
    @@ -208,7 +208,7 @@ public void reload() {
         }
     
         /**
    -     * 加载设置文件。 此方法不会关闭流对象
    +     * 加载设置文件  此方法不会关闭流对象
          *
          * @param settingStream 文件流
          * @return 加载成功与否
    @@ -234,13 +234,13 @@ public boolean load(InputStream settingStream) throws IOException {
                         // 空行和注释忽略
                         continue;
                     } else if (line.startsWith(Symbol.BACKSLASH + COMMENT_FLAG_PRE)) {
    -                    // 对于值中出现开头为#的字符串,需要转义处理,在此做反转义
    +                    // 对于值中出现开头为#的字符串,需要转义处理,在此做反转义
                         line = line.substring(1);
                     }
     
                     // 记录分组名
                     if (line.charAt(0) == GROUP_SURROUND[0] && line.charAt(line.length() - 1) == GROUP_SURROUND[1]) {
    -                    // 开始新的分组取值,当出现重名分组时候,合并分组值
    +                    // 开始新的分组取值,当出现重名分组时候,合并分组值
                         group = line.substring(1, line.length() - 1).trim();
                         valueSet = super.get(group);
                         if (null == valueSet) {
    @@ -252,7 +252,7 @@ public boolean load(InputStream settingStream) throws IOException {
     
                     // 添加值
                     if (null == valueSet) {
    -                    // 当出现无分组值的时候,会导致valueSet为空,此时group为""
    +                    // 当出现无分组值的时候,会导致valueSet为空,此时group为""
                         valueSet = new LinkedHashSet();
                         super.put(Normal.EMPTY, valueSet);
                     }
    @@ -293,7 +293,7 @@ public LinkedHashSet getValues(String group) {
     
         /**
          * 是否在给定分组的集合中包含指定值
    -     * 如果给定分组对应集合不存在,则返回false
    +     * 如果给定分组对应集合不存在,则返回false
          *
          * @param group       分组名
          * @param value       测试的值
    @@ -319,7 +319,7 @@ public boolean contains(String group, String value, String... otherValues) {
     
         /**
          * 是否在给定分组的集合中全部包含指定值集合
    -     * 如果给定分组对应集合不存在,则返回false
    +     * 如果给定分组对应集合不存在,则返回false
          *
          * @param group  分组名
          * @param values 测试的值集合
    diff --git a/bus-setting/src/main/java/org/aoju/bus/setting/Setting.java b/bus-setting/src/main/java/org/aoju/bus/setting/Setting.java
    index 3a348d5ca9..d5b833e470 100755
    --- a/bus-setting/src/main/java/org/aoju/bus/setting/Setting.java
    +++ b/bus-setting/src/main/java/org/aoju/bus/setting/Setting.java
    @@ -48,14 +48,14 @@
     import java.util.*;
     
     /**
    - * 设置工具类。 用于支持设置(配置)文件
    - * BasicSetting用于替换Properties类,提供功能更加强大的配置文件,同时对Properties文件向下兼容
    + * 设置工具类  用于支持设置(配置)文件
    + * BasicSetting用于替换Properties类,提供功能更加强大的配置文件,同时对Properties文件向下兼容
      *
      * 
    - *  1、支持变量,默认变量命名为 ${变量名},变量只能识别读入行的变量,例如第6行的变量在第三行无法读取
    - *  2、支持分组,分组为中括号括起来的内容,中括号以下的行都为此分组的内容,无分组相当于空字符分组,若某个key是name,加上分组后的键相当于group.name
    - *  3、注释以#开头,但是空行和不带“=”的行也会被跳过,但是建议加#
    - *  4、store方法不会保存注释内容,慎重使用
    + *  1、支持变量,默认变量命名为 ${变量名},变量只能识别读入行的变量,例如第6行的变量在第三行无法读取
    + *  2、支持分组,分组为中括号括起来的内容,中括号以下的行都为此分组的内容,无分组相当于空字符分组,若某个key是name,加上分组后的键相当于group.name
    + *  3、注释以#开头,但是空行和不带“=”的行也会被跳过,但是建议加#
    + *  4、store方法不会保存注释内容,慎重使用
      * 
    * * @author Kimi Liu @@ -111,7 +111,7 @@ public Setting(String path, boolean isUseVariable) { } /** - * 构造,使用相对于Class文件根目录的相对路径 + * 构造,使用相对于Class文件根目录的相对路径 * * @param path 相对路径或绝对路径 * @param charset 字符集 @@ -135,7 +135,7 @@ public Setting(File configFile, Charset charset, boolean isUseVariable) { } /** - * 构造,相对于classes读取文件 + * 构造,相对于classes读取文件 * * @param path 相对ClassPath路径或绝对路径 * @param clazz 基准类 @@ -238,9 +238,9 @@ public String getByGroup(String key, String group) { } /** - * 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找 + * 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找 * - * @param keys 键列表,常用于别名 + * @param keys 键列表,常用于别名 * @return 值 * @since 3.1.9 */ @@ -256,9 +256,9 @@ public Object getAndRemove(String... keys) { } /** - * 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找 + * 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找 * - * @param keys 键列表,常用于别名 + * @param keys 键列表,常用于别名 * @return 字符串值 * @since 3.1.9 */ @@ -274,7 +274,7 @@ public String getAndRemoveStr(String... keys) { } /** - * 获得指定分组的所有键值对,此方法获取的是原始键值对,获取的键值对可以被修改 + * 获得指定分组的所有键值对,此方法获取的是原始键值对,获取的键值对可以被修改 * * @param group 分组 * @return map @@ -320,7 +320,7 @@ public Props getProps(String group) { } /** - * 持久化当前设置,会覆盖掉之前的设置 + * 持久化当前设置,会覆盖掉之前的设置 * 持久化不会保留之前的分组 * * @param absolutePath 设置文件的绝对路径 @@ -333,7 +333,7 @@ public void store(String absolutePath) { } /** - * 转换为Properties对象,原分组变为前缀 + * 转换为Properties对象,原分组变为前缀 * * @return Properties对象 */ @@ -369,7 +369,7 @@ public List getGroups() { /** * 设置变量的正则 - * 正则只能有一个group表示变量本身,剩余为字符 例如 \$\{(name)\}表示${name}变量名为name的一个变量表示 + * 正则只能有一个group表示变量本身,剩余为字符 例如 \$\{(name)\}表示${name}变量名为name的一个变量表示 * * @param regex 正则 */ @@ -413,11 +413,11 @@ public boolean containsValue(String group, String value) { } /** - * 获取分组对应的值,如果分组不存在或者值不存在则返回null + * 获取分组对应的值,如果分组不存在或者值不存在则返回null * * @param group 分组 * @param key 键 - * @return 值,如果分组不存在或者值不存在则返回null + * @return 值, 如果分组不存在或者值不存在则返回null */ public String get(String group, String key) { return this.groupedMap.get(group, key); @@ -429,7 +429,7 @@ public String get(String group, String key) { * @param group 分组 * @param key 键 * @param value 值 - * @return 此key之前存在的值,如果没有返回null + * @return 此key之前存在的值, 如果没有返回null */ public String put(String group, String key, String value) { return this.groupedMap.put(group, key, value); @@ -440,7 +440,7 @@ public String put(String group, String key, String value) { * * @param group 分组 * @param key 键 - * @return 被删除的值,如果值不存在,返回null + * @return 被删除的值, 如果值不存在, 返回null */ public String remove(String group, Object key) { return this.groupedMap.remove(group, Convert.toString(key)); diff --git a/bus-setting/src/main/java/org/aoju/bus/setting/SettingLoader.java b/bus-setting/src/main/java/org/aoju/bus/setting/SettingLoader.java index 2c218aab2e..77353a0a82 100755 --- a/bus-setting/src/main/java/org/aoju/bus/setting/SettingLoader.java +++ b/bus-setting/src/main/java/org/aoju/bus/setting/SettingLoader.java @@ -52,7 +52,7 @@ public class SettingLoader { /** - * 注释符号(当有此符号在行首,表示此行为注释) + * 注释符号(当有此符号在行首,表示此行为注释) */ private final static char COMMENT_FLAG_PRE = '#'; /** @@ -120,7 +120,7 @@ public boolean load(UriResource uriResource) { } /** - * 加载设置文件。 此方法不会关闭流对象 + * 加载设置文件 此方法不会关闭流对象 * * @param settingStream 文件流 * @return 加载成功与否 @@ -159,7 +159,7 @@ public boolean load(InputStream settingStream) throws IOException { } String value = keyValue[1].trim(); - // 替换值中的所有变量变量(变量必须是此行之前定义的变量,否则无法找到) + // 替换值中的所有变量变量(变量必须是此行之前定义的变量,否则无法找到) if (this.isUseVariable) { value = replaceVar(group, value); } @@ -173,7 +173,7 @@ public boolean load(InputStream settingStream) throws IOException { /** * 设置变量的正则 - * 正则只能有一个group表示变量本身,剩余为字符 例如 \$\{(name)\}表示${name}变量名为name的一个变量表示 + * 正则只能有一个group表示变量本身,剩余为字符 例如 \$\{(name)\}表示${name}变量名为name的一个变量表示 * * @param regex 正则 */ @@ -182,7 +182,7 @@ public void setVarRegex(String regex) { } /** - * 持久化当前设置,会覆盖掉之前的设置 + * 持久化当前设置,会覆盖掉之前的设置 * 持久化会不会保留之前的分组 * * @param absolutePath 设置文件的绝对路径 diff --git a/bus-setting/src/main/java/org/aoju/bus/setting/SettingUtils.java b/bus-setting/src/main/java/org/aoju/bus/setting/SettingUtils.java index 672e78a4ec..db110e8f70 100755 --- a/bus-setting/src/main/java/org/aoju/bus/setting/SettingUtils.java +++ b/bus-setting/src/main/java/org/aoju/bus/setting/SettingUtils.java @@ -47,9 +47,9 @@ public class SettingUtils { /** * 获取当前环境下的配置文件 - * name可以为不包括扩展名的文件名(默认.setting为结尾),也可以是文件名全称 + * name可以为不包括扩展名的文件名(默认.setting为结尾),也可以是文件名全称 * - * @param name 文件名,如果没有扩展名,默认为.setting + * @param name 文件名,如果没有扩展名,默认为.setting * @return 当前环境下配置文件 */ public static Setting get(String name) { diff --git a/bus-setting/src/main/java/org/aoju/bus/setting/dialect/Props.java b/bus-setting/src/main/java/org/aoju/bus/setting/dialect/Props.java index 86ed498fdc..1061c5ffdc 100755 --- a/bus-setting/src/main/java/org/aoju/bus/setting/dialect/Props.java +++ b/bus-setting/src/main/java/org/aoju/bus/setting/dialect/Props.java @@ -80,7 +80,7 @@ public Props() { } /** - * 构造,使用相对于Class文件根目录的相对路径 + * 构造,使用相对于Class文件根目录的相对路径 * * @param path 路径 */ @@ -89,7 +89,7 @@ public Props(String path) { } /** - * 构造,使用相对于Class文件根目录的相对路径 + * 构造,使用相对于Class文件根目录的相对路径 * * @param path 相对或绝对路径 * @param charsetName 字符集 @@ -99,7 +99,7 @@ public Props(String path, String charsetName) { } /** - * 构造,使用相对于Class文件根目录的相对路径 + * 构造,使用相对于Class文件根目录的相对路径 * * @param path 相对或绝对路径 * @param charset 字符集 @@ -144,7 +144,7 @@ public Props(File propertiesFile, Charset charset) { } /** - * 构造,相对于classes读取文件 + * 构造,相对于classes读取文件 * * @param path 相对路径 * @param clazz 基准类 @@ -154,7 +154,7 @@ public Props(String path, Class clazz) { } /** - * 构造,相对于classes读取文件 + * 构造,相对于classes读取文件 * * @param path 相对路径 * @param clazz 基准类 @@ -165,7 +165,7 @@ public Props(String path, Class clazz, String charsetName) { } /** - * 构造,相对于classes读取文件 + * 构造,相对于classes读取文件 * * @param path 相对路径 * @param clazz 基准类 @@ -180,7 +180,7 @@ public Props(String path, Class clazz, Charset charset) { } /** - * 构造,使用URL读取 + * 构造,使用URL读取 * * @param propertiesUrl 属性文件路径 */ @@ -189,7 +189,7 @@ public Props(URL propertiesUrl) { } /** - * 构造,使用URL读取 + * 构造,使用URL读取 * * @param propertiesUrl 属性文件路径 * @param charsetName 字符集 @@ -199,7 +199,7 @@ public Props(URL propertiesUrl, String charsetName) { } /** - * 构造,使用URL读取 + * 构造,使用URL读取 * * @param propertiesUrl 属性文件路径 * @param charset 字符集 @@ -213,7 +213,7 @@ public Props(URL propertiesUrl, Charset charset) { } /** - * 构造,使用URL读取 + * 构造,使用URL读取 * * @param properties 属性文件路径 */ @@ -469,9 +469,9 @@ public Date getDate(String key) { } /** - * 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找 + * 获取并删除键值对,当指定键对应值非空时,返回并删除这个值,后边的键对应的值不再查找 * - * @param keys 键列表,常用于别名 + * @param keys 键列表,常用于别名 * @return 字符串值 */ public String getAndRemoveStr(String... keys) { @@ -486,7 +486,7 @@ public String getAndRemoveStr(String... keys) { } /** - * 设置值,无给定键创建之。设置后未持久化 + * 设置值,无给定键创建之 设置后未持久化 * * @param key 属性键 * @param value 属性值 @@ -496,10 +496,10 @@ public void setProperty(String key, Object value) { } /** - * 持久化当前设置,会覆盖掉之前的设置 + * 持久化当前设置,会覆盖掉之前的设置 * * @param absolutePath 设置文件的绝对路径 - * @throws InstrumentException IO异常,可能为文件未找到 + * @throws InstrumentException IO异常,可能为文件未找到 */ public void store(String absolutePath) throws InstrumentException { Writer writer = null; @@ -514,7 +514,7 @@ public void store(String absolutePath) throws InstrumentException { } /** - * 存储当前设置,会覆盖掉以前的设置 + * 存储当前设置,会覆盖掉以前的设置 * * @param path 相对路径 * @param clazz 相对的类 diff --git a/bus-setting/src/main/java/org/aoju/bus/setting/profile/GlobalProfile.java b/bus-setting/src/main/java/org/aoju/bus/setting/profile/GlobalProfile.java index fb9e3606c8..4da08c7376 100755 --- a/bus-setting/src/main/java/org/aoju/bus/setting/profile/GlobalProfile.java +++ b/bus-setting/src/main/java/org/aoju/bus/setting/profile/GlobalProfile.java @@ -51,7 +51,7 @@ public static Profile setProfile(String profile) { /** * 获得全局的当前环境下对应的配置文件 * - * @param settingName 配置文件名,可以忽略默认后者(.setting) + * @param settingName 配置文件名,可以忽略默认后者(.setting) * @return {@link Setting} */ public static Setting getSetting(String settingName) { diff --git a/bus-setting/src/main/java/org/aoju/bus/setting/profile/Profile.java b/bus-setting/src/main/java/org/aoju/bus/setting/profile/Profile.java index 3f0a90bcfe..7b64fc47b7 100755 --- a/bus-setting/src/main/java/org/aoju/bus/setting/profile/Profile.java +++ b/bus-setting/src/main/java/org/aoju/bus/setting/profile/Profile.java @@ -34,10 +34,10 @@ import java.util.concurrent.ConcurrentHashMap; /** - * Profile可以让我们定义一系列的配置信息,然后指定其激活条件。 + * Profile可以让我们定义一系列的配置信息,然后指定其激活条件 * 此类中我们规范一套规则如下: - * 默认的,我们读取${classpath}/default下的配置文件(*.setting文件),当调用setProfile方法时,指定一个profile,即可读取其目录下的配置文件。 - * 比如我们定义几个profile:test,develop,production,分别代表测试环境、开发环境和线上环境,我希望读取数据库配置文件db.setting,那么: + * 默认的,我们读取${classpath}/default下的配置文件(*.setting文件),当调用setProfile方法时,指定一个profile,即可读取其目录下的配置文件 + * 比如我们定义几个profile:test,develop,production,分别代表测试环境、开发环境和线上环境,我希望读取数据库配置文件db.setting,那么: *
      *
    1. test =》 ${classpath}/test/db.setting
    2. *
    3. develop =》 ${classpath}/develop/db.setting
    4. @@ -73,14 +73,14 @@ public class Profile implements Serializable { private Map settingMap = new ConcurrentHashMap<>(); /** - * 默认构造,环境使用默认的:default,编码UTF-8,不使用变量 + * 默认构造,环境使用默认的:default,编码UTF-8,不使用变量 */ public Profile() { this(DEFAULT_PROFILE); } /** - * 构造,编码UTF-8,不使用变量 + * 构造,编码UTF-8,不使用变量 * * @param profile 环境 */ @@ -105,7 +105,7 @@ public Profile(String profile, Charset charset, boolean useVar) { /** * 获取当前环境下的配置文件 * - * @param name 文件名,如果没有扩展名,默认为.setting + * @param name 文件名,如果没有扩展名,默认为.setting * @return 当前环境下配置文件 */ public Setting getSetting(String name) { diff --git a/bus-shade/src/main/java/org/aoju/bus/shade/NamingRules.java b/bus-shade/src/main/java/org/aoju/bus/shade/NamingRules.java index 4d2a508555..ff67e330a4 100755 --- a/bus-shade/src/main/java/org/aoju/bus/shade/NamingRules.java +++ b/bus-shade/src/main/java/org/aoju/bus/shade/NamingRules.java @@ -51,7 +51,7 @@ public static String getClassName(String table) { } /** - * 说明:获取字段名,把"_"后面字母变大写 + * 说明:获取字段名,把"_"后面字母变大写 * * @param field 字段名 * @param named 是否为名称 diff --git a/bus-shade/src/main/java/org/aoju/bus/shade/entity/TableEntity.java b/bus-shade/src/main/java/org/aoju/bus/shade/entity/TableEntity.java index 0a6c8d4675..5781b2cf2e 100755 --- a/bus-shade/src/main/java/org/aoju/bus/shade/entity/TableEntity.java +++ b/bus-shade/src/main/java/org/aoju/bus/shade/entity/TableEntity.java @@ -150,7 +150,7 @@ public static TableEntity get(TableEntity bi) { pstemt.close(); con.close(); if (null == columns || columns.size() == 0) { - throw new RuntimeException("未能读取到表或表中的字段。请检查链接url,数据库账户,数据库密码,查询的数据名、是否正确。"); + throw new RuntimeException("未能读取到表或表中的字段 请检查链接url,数据库账户,数据库密码,查询的数据名、是否正确 "); } return bi; } catch (Exception e) { diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/netty/ChannelInitializer.java b/bus-socket/src/main/java/org/aoju/bus/socket/netty/ChannelInitializer.java index 3b960a714c..69d858b313 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/netty/ChannelInitializer.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/netty/ChannelInitializer.java @@ -48,7 +48,7 @@ protected void initChannel(SocketChannel ch) { ChannelPipeline pipeline = ch.pipeline(); //HttpServerCodec: 针对http协议进行编解码 pipeline.addLast("httpServerCodec", new HttpServerCodec()); - //ChunkedWriteHandler分块写处理,文件过大会将内存撑爆 + //ChunkedWriteHandler分块写处理,文件过大会将内存撑爆 pipeline.addLast("chunkedWriteHandler", new ChunkedWriteHandler()); //作用是将一个Http的消息组装成一个HttpRequest或者HttpResponse, 该Handler必须放在HttpServerCodec后的后面 pipeline.addLast("httpObjectAggregator", new HttpObjectAggregator(8192)); diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/netty/SocketRequest.java b/bus-socket/src/main/java/org/aoju/bus/socket/netty/SocketRequest.java index bf489dc23c..7d9a7d0d9a 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/netty/SocketRequest.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/netty/SocketRequest.java @@ -40,7 +40,7 @@ public class SocketRequest { private ChannelHandlerContext context; /** - * 事件类型:订阅,消息,取消订阅,心跳 + * 事件类型:订阅,消息,取消订阅,心跳 */ private String event; diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/netty/annotation/WebSocket.java b/bus-socket/src/main/java/org/aoju/bus/socket/netty/annotation/WebSocket.java index 0aafdc3f06..537de41ccc 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/netty/annotation/WebSocket.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/netty/annotation/WebSocket.java @@ -36,7 +36,7 @@ public @interface WebSocket { /** - * 订阅主题,topic + * 订阅主题,topic * * @return the string */ diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioQuickClient.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioQuickClient.java index 259bb4cdcd..431195a3c9 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioQuickClient.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioQuickClient.java @@ -45,8 +45,8 @@ public class AioQuickClient { /** - * 客户端服务配置。 - * 调用AioQuickClient的各setXX()方法,都是为了设置config的各配置项 + * 客户端服务配置 + * 调用AioQuickClient的各setXX()方法,都是为了设置config的各配置项 */ protected ServerConfig config = new ServerConfig<>(); /** @@ -57,9 +57,9 @@ public class AioQuickClient { protected TcpAioSession session; protected BufferPool bufferPool = null; /** - * IO事件处理线程组。 + * IO事件处理线程组 *

      - * 作为客户端,该AsynchronousChannelGroup只需保证2个长度的线程池大小即可满足通信读写所需。 + * 作为客户端,该AsynchronousChannelGroup只需保证2个长度的线程池大小即可满足通信读写所需 */ private AsynchronousChannelGroup asynchronousChannelGroup; @@ -69,7 +69,7 @@ public class AioQuickClient { private SocketAddress localAddress; /** - * 当前构造方法设置了启动Aio客户端的必要参数,基本实现开箱即用。 + * 当前构造方法设置了启动Aio客户端的必要参数,基本实现开箱即用 * * @param host 远程服务器地址 * @param port 远程服务器端口号 @@ -84,9 +84,9 @@ public AioQuickClient(String host, int port, Protocol protocol, Message me } /** - * 启动客户端。 - * 在与服务端建立连接期间,该方法处于阻塞状态。直至连接建立成功,或者发生异常。 - * 该start方法支持外部指定AsynchronousChannelGroup,实现多个客户端共享一组线程池资源,有效提升资源利用率。 + * 启动客户端 + * 在与服务端建立连接期间,该方法处于阻塞状态 直至连接建立成功,或者发生异常 + * 该start方法支持外部指定AsynchronousChannelGroup,实现多个客户端共享一组线程池资源,有效提升资源利用率 * * @param asynchronousChannelGroup IO事件处理线程组 * @return the object @@ -118,9 +118,9 @@ public AioSession start(AsynchronousChannelGroup asynchronousChannelGroup) th } /** - * 启动客户端。 - * 本方法会构建线程数为2的{@code asynchronousChannelGroup}, 并通过调用 - * {@link AioQuickClient#start(AsynchronousChannelGroup)}启动服务。 + * 启动客户端 + * 本方法会构建线程数为2的{@code asynchronousChannelGroup}, 并通过调用 + * {@link AioQuickClient#start(AsynchronousChannelGroup)}启动服务 * * @return the object * @throws IOException 异常 @@ -140,9 +140,9 @@ public Thread newThread(Runnable r) { /** * 停止客户端服务. - * 调用该方法会触发AioSession的close方法,并且如果当前客户端若是通过执行 - * {@link AioQuickClient#start()}方法构建的, - * 同时会触发asynchronousChannelGroup的shutdown动作。 + * 调用该方法会触发AioSession的close方法,并且如果当前客户端若是通过执行 + * {@link AioQuickClient#start()}方法构建的, + * 同时会触发asynchronousChannelGroup的shutdown动作 */ public final void shutdown() { showdown0(false); diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioQuickServer.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioQuickServer.java index eb1ec80c33..c4003616c5 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioQuickServer.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioQuickServer.java @@ -52,8 +52,8 @@ public class AioQuickServer { /** - * Server端服务配置。 - *

      调用AioQuickServer的各setXX()方法,都是为了设置config的各配置项

      + * Server端服务配置 + *

      调用AioQuickServer的各setXX()方法,都是为了设置config的各配置项

      */ protected ServerConfig config = new ServerConfig<>(); protected BufferPool bufferPool; @@ -277,7 +277,7 @@ public final AioQuickServer setReadBufferSize(int size) { /** * 是否启用控制台Banner打印 * - * @param bannerEnabled true:启用,false:禁用 + * @param bannerEnabled true:启用,false:禁用 * @return the object */ public final AioQuickServer setBannerEnabled(boolean bannerEnabled) { @@ -286,7 +286,7 @@ public final AioQuickServer setBannerEnabled(boolean bannerEnabled) { } /** - * 设置Socket的TCP参数配置。 + * 设置Socket的TCP参数配置 *

      * AIO客户端的有效可选范围为: * 2. StandardSocketOptions.SO_RCVBUF diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioSession.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioSession.java index 0599443493..6cf40de1b5 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioSession.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/AioSession.java @@ -66,8 +66,8 @@ public abstract class AioSession { public abstract WriteBuffer writeBuffer(); /** - * 强制关闭当前AIOSession。 - *

      若此时还存留待输出的数据,则会导致该部分数据丢失

      + * 强制关闭当前AIOSession + *

      若此时还存留待输出的数据,则会导致该部分数据丢失

      */ public final void close() { close(true); @@ -109,7 +109,7 @@ public final T getAttachment() { } /** - * 存放附件,支持任意类型 + * 存放附件,支持任意类型 * * @param 对象 * @param attachment 附件 @@ -123,12 +123,12 @@ public final void setAttachment(T attachment) { public abstract InetSocketAddress getRemoteAddress() throws IOException; /** - * 获得数据输入流对象。 + * 获得数据输入流对象 *

      - * faster模式下调用该方法会触发UnsupportedOperationException异常。 + * faster模式下调用该方法会触发UnsupportedOperationException异常 *

      *

      - * MessageProcessor采用异步处理消息的方式时,调用该方法可能会出现异常。 + * MessageProcessor采用异步处理消息的方式时,调用该方法可能会出现异常 *

      * * @return 输入流对象 diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/Message.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/Message.java index df5ea98986..a530b71a0b 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/Message.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/Message.java @@ -24,7 +24,7 @@ package org.aoju.bus.socket.origin; /** - * 消息处理器,通过实现该接口,对完成解码的消息进行业务处理 + * 消息处理器,通过实现该接口,对完成解码的消息进行业务处理 * * @author Kimi Liu * @version 5.2.2 @@ -45,7 +45,7 @@ public interface Message { * * @param session 本次触发状态机的AioSession对象 * @param stateMachineEnum 状态枚举 - * @param throwable 异常对象,如果存在的话 + * @param throwable 异常对象,如果存在的话 * @see StateMachine */ void stateEvent(AioSession session, StateMachine stateMachineEnum, Throwable throwable); diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/NetMonitor.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/NetMonitor.java index 5d59042fbf..9a1ec42dfb 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/NetMonitor.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/NetMonitor.java @@ -26,10 +26,10 @@ import java.nio.channels.AsynchronousSocketChannel; /** - * 网络监控器,提供通讯层面监控功能的接口。 + * 网络监控器,提供通讯层面监控功能的接口 *

      - * 并未单独提供配置监控服务的接口,用户在使用时仅需在MessageProcessor实现类中同时实现当前NetMonitor接口即可。 - * 在注册消息处理器时,若服务监测到该处理器同时实现了NetMonitor接口,则该监视器便会生效。 + * 并未单独提供配置监控服务的接口,用户在使用时仅需在MessageProcessor实现类中同时实现当前NetMonitor接口即可 + * 在注册消息处理器时,若服务监测到该处理器同时实现了NetMonitor接口,则该监视器便会生效 *

      *

      示例:

      *
      @@ -40,7 +40,7 @@
        *
        * 注意:
        * 

      - * 实现本接口时要关注acceptMonitor接口的返回值,如无特殊需求直接返回true,若返回false会拒绝本次连接 + * 实现本接口时要关注acceptMonitor接口的返回值,如无特殊需求直接返回true,若返回false会拒绝本次连接 *

      * * @author Kimi Liu diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/Protocol.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/Protocol.java index af72b53cb4..995aab76d9 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/Protocol.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/Protocol.java @@ -26,11 +26,11 @@ import java.nio.ByteBuffer; /** - * 消息传输采用的协议, - * 根据通信双方约定的协议规范实现{@code Protocol}接口, + * 消息传输采用的协议, + * 根据通信双方约定的协议规范实现{@code Protocol}接口, * 使用时将该实现类注册至服务启动类{@link AioQuickClient}/{@link AioQuickServer} - * 注意:框架本身的所有Socket链路复用同一个Protocol, - * 请勿在其实现类的成员变量中存储特定链路的数据。 + * 注意:框架本身的所有Socket链路复用同一个Protocol, + * 请勿在其实现类的成员变量中存储特定链路的数据 * * @author Kimi Liu * @version 5.2.2 @@ -39,7 +39,7 @@ public interface Protocol { /** - * 对于从Socket流中获取到的数据采用当前Protocol的实现类协议进行解析。 + * 对于从Socket流中获取到的数据采用当前Protocol的实现类协议进行解析 * * @param readBuffer 待处理的读buffer * @param session 本次需要解码的session diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/StateMachine.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/StateMachine.java index f325d87c70..490089c4c2 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/StateMachine.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/StateMachine.java @@ -26,9 +26,9 @@ import java.nio.ByteBuffer; /** - * 列举了当前所关注的各类状态枚举。 + * 列举了当前所关注的各类状态枚举 *

      - * 当前枚举的各状态机事件在发生后都会及时触发{@link Message#stateEvent(AioSession, StateMachine, Throwable)}方法。因此用户在实现的{@linkplain Message}接口中可对自己关心的状态机事件进行处理。 + * 当前枚举的各状态机事件在发生后都会及时触发{@link Message#stateEvent(AioSession, StateMachine, Throwable)}方法 因此用户在实现的{@linkplain Message}接口中可对自己关心的状态机事件进行处理 * * @author Kimi Liu * @version 5.2.2 @@ -44,43 +44,43 @@ public enum StateMachine { * 读通道已被关闭 * 通常由以下几种情况会触发该状态: *

        - *
      1. 对端主动关闭write通道,致使本通常满足了EOF条件
      2. + *
      3. 对端主动关闭write通道,致使本通常满足了EOF条件
      4. *
      5. 当前AioSession处理完读操作后检测到自身正处于{@link StateMachine#SESSION_CLOSING}状态
      6. *
      * - * 未来该状态机可能会废除,并转移至NetMonitor + * 未来该状态机可能会废除,并转移至NetMonitor */ INPUT_SHUTDOWN, /** - * 业务处理异常。 - * 执行{@link Message#process(AioSession, Object)}期间发生用户未捕获的异常。 + * 业务处理异常 + * 执行{@link Message#process(AioSession, Object)}期间发生用户未捕获的异常 */ PROCESS_EXCEPTION, /** * 协议解码异常 - * 执行{@link Protocol#decode(ByteBuffer, AioSession)}期间发生未捕获的异常。 + * 执行{@link Protocol#decode(ByteBuffer, AioSession)}期间发生未捕获的异常 */ DECODE_EXCEPTION, /** * 读操作异常 * 在底层服务执行read操作期间因发生异常情况出发了{@link java.nio.channels.CompletionHandler#failed(Throwable, Object)} - * 未来该状态机可能会废除,并转移至NetMonitor + * 未来该状态机可能会废除,并转移至NetMonitor */ INPUT_EXCEPTION, /** - * 写操作异常。 + * 写操作异常 * 在底层服务执行write操作期间因发生异常情况出发了{@link java.nio.channels.CompletionHandler#failed(Throwable, Object)} - * 未来该状态机可能会废除,并转移至NetMonitor + * 未来该状态机可能会废除,并转移至NetMonitor */ OUTPUT_EXCEPTION, /** * 会话正在关闭中 - * 执行了{@link AioSession#close(boolean)}方法,并且当前还存在待输出的数据 + * 执行了{@link AioSession#close(boolean)}方法,并且当前还存在待输出的数据 */ SESSION_CLOSING, /** - * 会话关闭成功。 + * 会话关闭成功 * AioSession关闭成功 */ SESSION_CLOSED, diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/TcpAioSession.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/TcpAioSession.java index fad3d2b862..b70efdbdb9 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/TcpAioSession.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/TcpAioSession.java @@ -37,10 +37,10 @@ import java.util.concurrent.TimeUnit; /** - * AIO传输层会话。 + * AIO传输层会话 * *

      - * AioSession为最核心的类,封装{@link AsynchronousSocketChannel} API接口,简化IO操作。 + * AioSession为最核心的类,封装{@link AsynchronousSocketChannel} API接口,简化IO操作 *

      *

      * 其中开放给用户使用的接口为: @@ -70,7 +70,7 @@ class TcpAioSession extends AioSession { */ protected AsynchronousSocketChannel channel; /** - * 读缓冲。 + * 读缓冲 *

      大小取决于AioQuickClient/AioQuickServer设置的setReadBufferSize

      */ protected VirtualBuffer readBuffer; @@ -184,8 +184,8 @@ public final WriteBuffer writeBuffer() { } // // /** -// * 强制关闭当前AIOSession。 -// *

      若此时还存留待输出的数据,则会导致该部分数据丢失

      +// * 强制关闭当前AIOSession +// *

      若此时还存留待输出的数据,则会导致该部分数据丢失

      // */ // public final void close() { // close(true); @@ -359,12 +359,12 @@ ServerConfig getServerConfig() { } /** - * 获得数据输入流对象。 + * 获得数据输入流对象 *

      - * faster模式下调用该方法会触发UnsupportedOperationException异常。 + * faster模式下调用该方法会触发UnsupportedOperationException异常 *

      *

      - * MessageProcessor采用异步处理消息的方式时,调用该方法可能会出现异常。 + * MessageProcessor采用异步处理消息的方式时,调用该方法可能会出现异常 *

      */ public InputStream getInputStream() throws IOException { diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/UdpBootstrap.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/UdpBootstrap.java index 57d8c0f6b9..c0fcac459e 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/UdpBootstrap.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/UdpBootstrap.java @@ -116,7 +116,7 @@ public UdpBootstrap(Protocol protocol, Message messageProcesso } /** - * 开启一个UDP通道,端口号随机 + * 开启一个UDP通道,端口号随机 * * @return UDP通道 * @throws IOException 异常 diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/WriteBuffer.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/WriteBuffer.java index 43850638c6..4199f45e91 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/WriteBuffer.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/WriteBuffer.java @@ -91,8 +91,8 @@ protected WriteBuffer(BufferPage bufferPage, Function flushFu } /** - * 按照{@link OutputStream#write(int)}规范:要写入的字节是参数 b 的八个低位。 b 的 24 个高位将被忽略 - * 而使用该接口时容易传入非byte范围内的数据,接口定义与实际使用出现歧义的可能性较大,故建议废弃该方法,选用{@link WriteBuffer#writeByte(byte)}。 + * 按照{@link OutputStream#write(int)}规范:要写入的字节是参数 b 的八个低位 b 的 24 个高位将被忽略 + * 而使用该接口时容易传入非byte范围内的数据,接口定义与实际使用出现歧义的可能性较大,故建议废弃该方法,选用{@link WriteBuffer#writeByte(byte)} * * @param b byte * @throws IOException 如果发生 I/O 错误 @@ -201,8 +201,8 @@ private void waitPreWriteFinish() throws IOException { } /** - * 写入内容并刷新缓冲区。在{@link Message#process(AioSession, Object)}执行的write操作可无需调用该方法,业务执行完毕后框架本身会自动触发flush。 - * 调用该方法后数据会及时的输出到对端,如果再循环体中通过该方法往某个通道中写入数据将无法获得最佳性能表现, + * 写入内容并刷新缓冲区 在{@link Message#process(AioSession, Object)}执行的write操作可无需调用该方法,业务执行完毕后框架本身会自动触发flush + * 调用该方法后数据会及时的输出到对端,如果再循环体中通过该方法往某个通道中写入数据将无法获得最佳性能表现, * * @param b 待输出数据 * @throws IOException 如果发生 I/O 错误 diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/HeartPlugin.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/HeartPlugin.java index 01c88ad227..ff159334e8 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/HeartPlugin.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/HeartPlugin.java @@ -85,8 +85,8 @@ public final void stateEvent(StateMachine stateMachineEnum, AioSession sessio public abstract void sendHeartRequest(AioSession session) throws IOException; /** - * 判断当前收到的消息是否为心跳消息。 - * 心跳请求消息与响应消息可能相同,也可能不同,因实际场景而异,故接口定义不做区分。 + * 判断当前收到的消息是否为心跳消息 + * 心跳请求消息与响应消息可能相同,也可能不同,因实际场景而异,故接口定义不做区分 * * @param session 会话 * @param msg 信息 @@ -105,7 +105,7 @@ private void registerHeart(final AioSession session, final int timeout) { public void run() { if (session.isInvalid()) { sessionMap.remove(session); - Logger.info("session:{} 已失效,移除心跳任务", session); + Logger.info("session:{} 已失效,移除心跳任务", session); return; } Long lastTime = sessionMap.get(session); diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/Plugin.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/Plugin.java index bf48af7c25..b31a3fe252 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/Plugin.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/Plugin.java @@ -35,9 +35,9 @@ public interface Plugin extends NetMonitor { /** - * 对请求消息进行预处理,并决策是否进行后续的MessageProcessor处理。 - * 若返回false,则当前消息将被忽略。 - * 若返回true,该消息会正常秩序MessageProcessor.process. + * 对请求消息进行预处理,并决策是否进行后续的MessageProcessor处理 + * 若返回false,则当前消息将被忽略 + * 若返回true,该消息会正常秩序MessageProcessor.process. * * @param session 会话 * @param t 对象 diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/ssl/ClientAuth.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/ssl/ClientAuth.java index 83fed12c20..01ba9a6841 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/ssl/ClientAuth.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/ssl/ClientAuth.java @@ -24,7 +24,7 @@ package org.aoju.bus.socket.origin.plugins.ssl; /** - * 配置引擎请求客户端验证。此选项只对服务器模式的引擎有用 + * 配置引擎请求客户端验证 此选项只对服务器模式的引擎有用 * * @author Kimi Liu * @version 5.2.2 @@ -37,12 +37,12 @@ public enum ClientAuth { NONE, /** * 请求的客户端验证 - * 如果设置了此选项并且客户端选择不提供其自身的验证信息,则协商将会继续 + * 如果设置了此选项并且客户端选择不提供其自身的验证信息,则协商将会继续 */ OPTIONAL, /** * 必须的客户端验证 - * 如果设置了此选项并且客户端选择不提供其自身的验证信息,则协商将会停止且引擎将开始它的关闭过程 + * 如果设置了此选项并且客户端选择不提供其自身的验证信息,则协商将会停止且引擎将开始它的关闭过程 */ REQUIRE } diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/ssl/SSLService.java b/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/ssl/SSLService.java index 722f75b5d9..b7a4dabcb4 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/ssl/SSLService.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/origin/plugins/ssl/SSLService.java @@ -137,8 +137,8 @@ public Handshake createSSLEngine(AsynchronousSocketChannel socketChannel) { /** * 纯异步实现的SSL握手, - * 在执行doHandshake期间必须保证当前通道无数据读写正在执行。 - * 若触发了数据读写,也应立马终止doHandshake方法 + * 在执行doHandshake期间必须保证当前通道无数据读写正在执行 + * 若触发了数据读写,也应立马终止doHandshake方法 * * @param handshakeModel 握手信息 */ diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/spring/extension/MessageConfiguration.java b/bus-socket/src/main/java/org/aoju/bus/socket/spring/extension/MessageConfiguration.java index 9710c8a710..24919a2eb8 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/spring/extension/MessageConfiguration.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/spring/extension/MessageConfiguration.java @@ -8,7 +8,7 @@ import org.springframework.web.socket.config.annotation.WebMvcStompEndpointRegistry; /** - * 代替{@link DelegatingWebSocketMessageBrokerConfiguration}, + * 代替{@link DelegatingWebSocketMessageBrokerConfiguration}, * 使用自定义的{@link StompEndpointRegistry} * 代替默认的{@link WebMvcStompEndpointRegistry} * diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/spring/intercept/FromClientInterceptor.java b/bus-socket/src/main/java/org/aoju/bus/socket/spring/intercept/FromClientInterceptor.java index 3b7dc03f7d..8d3c3d1c7b 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/spring/intercept/FromClientInterceptor.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/spring/intercept/FromClientInterceptor.java @@ -6,7 +6,7 @@ import org.springframework.web.socket.messaging.StompSubProtocolHandler; /** - * websocket消息拦截器, + * websocket消息拦截器, * 拦截客户端发来的消息 * * @author Kimi Liu @@ -22,7 +22,7 @@ public interface FromClientInterceptor { * @param message websocket消息 * @param outputChannel websocket消息通道 * @param handler stomp协议控制器 - * @return true 执行后续操作,false 取消后续操作 + * @return true 执行后续操作,false 取消后续操作 */ default boolean preHandle(WebSocketSession session, MessageFrom message, MessageChannel outputChannel, StompSubProtocolHandler handler) { return true; diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/spring/intercept/ToClientInterceptor.java b/bus-socket/src/main/java/org/aoju/bus/socket/spring/intercept/ToClientInterceptor.java index d963dfe797..494b49d209 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/spring/intercept/ToClientInterceptor.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/spring/intercept/ToClientInterceptor.java @@ -5,7 +5,7 @@ import org.springframework.web.socket.messaging.StompSubProtocolHandler; /** - * websocket消息拦截器, + * websocket消息拦截器, * 拦截发送给客户端的消息 * * @author Kimi Liu @@ -21,7 +21,7 @@ public interface ToClientInterceptor { * @param accessor websocket消息头解析器 * @param payload websocket消息内容 * @param handler stomp协议控制器 - * @return true 执行后续操作,false 取消后续操作 + * @return true 执行后续操作,false 取消后续操作 */ default boolean preHandle(WebSocketSession session, StompHeaderAccessor accessor, Object payload, StompSubProtocolHandler handler) { return true; diff --git a/bus-socket/src/main/java/org/aoju/bus/socket/spring/support/MessageMatcher.java b/bus-socket/src/main/java/org/aoju/bus/socket/spring/support/MessageMatcher.java index 8eeb3fd3b4..31341685af 100755 --- a/bus-socket/src/main/java/org/aoju/bus/socket/spring/support/MessageMatcher.java +++ b/bus-socket/src/main/java/org/aoju/bus/socket/spring/support/MessageMatcher.java @@ -25,10 +25,10 @@ public class MessageMatcher { /** * 验证客户端消息的主题和类型 * - * @param pattern 与message的destination属性匹配的模板,可以是通配符 + * @param pattern 与message的destination属性匹配的模板,可以是通配符 * @param message 客户端消息 * @param type 消息类型 - * @return {@code true} 验证成功,{@code false} 验证失败 + * @return {@code true} 验证成功,{@code false} 验证失败 */ public boolean matches(String pattern, String type, MessageFrom message) { if (!Objects.equals(type, message.getType())) { diff --git a/bus-starter/src/main/java/org/aoju/bus/Version.java b/bus-starter/src/main/java/org/aoju/bus/Version.java index abf659ab9b..c749d7fe66 100755 --- a/bus-starter/src/main/java/org/aoju/bus/Version.java +++ b/bus-starter/src/main/java/org/aoju/bus/Version.java @@ -38,12 +38,12 @@ public class Version { /** - * 是否完整模式,默认使用完整模式 + * 是否完整模式,默认使用完整模式 */ private boolean complete = true; /** - * 获取 Version 的版本号,版本号的命名规范 + * 获取 Version 的版本号,版本号的命名规范 * *
            * [大版本].[小版本].[发布流水号]
      @@ -51,7 +51,7 @@ public class Version {
            * 

      * 这里有点说明 *

        - *
      • 大版本 - 表示API的版本,如果没有重大变化,基本上同样的大版本号,使用方式是一致的 + *
      • 大版本 - 表示API的版本,如果没有重大变化,基本上同样的大版本号,使用方式是一致的 *
      • 质量号 - alpha内部测试, beta 公测品质,RELEASE 生产品质 *
      • 小版本 - 每次发布增加1 *
      diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/Configurable.java b/bus-starter/src/main/java/org/aoju/bus/starter/Configurable.java index 2c49fbb99a..64aaa48e01 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/Configurable.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/Configurable.java @@ -28,7 +28,7 @@ import org.springframework.core.annotation.Order; /** - * 用于配置一些特殊的关键属性,比如bus-boot.version等, + * 用于配置一些特殊的关键属性,比如bus-boot.version等, * 将作为一个名为BusConfigurationProperties的属性源添加 * * @author Kimi Liu diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/GenieBuilder.java b/bus-starter/src/main/java/org/aoju/bus/starter/GenieBuilder.java index a85195f759..3ad7d802a6 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/GenieBuilder.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/GenieBuilder.java @@ -25,8 +25,6 @@ import org.aoju.bus.Version; import org.aoju.bus.starter.banner.BusBanner; -import org.aoju.bus.starter.BootConsts; -import org.aoju.bus.starter.BusListener; import org.springframework.boot.SpringApplication; import org.springframework.boot.env.EnvironmentPostProcessor; import org.springframework.core.Ordered; @@ -37,7 +35,7 @@ import java.util.Properties; /** - * 用于配置一些特殊的关键属性,比如bus-boot.version等, + * 用于配置一些特殊的关键属性,比如bus-boot.version等, * 将作为一个名为BusConfigurationProperties的属性源添加 * * @author Kimi Liu diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/SpringAware.java b/bus-starter/src/main/java/org/aoju/bus/starter/SpringAware.java index a585615321..daab9e3333 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/SpringAware.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/SpringAware.java @@ -102,7 +102,7 @@ public static T getBean(Class clazz) { } /** - * 依据类型获取所有子类(key为spring的id,value为对象实例) + * 依据类型获取所有子类(key为spring的id,value为对象实例) * * @param 对象 * @param requiredType 类型 diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/annotation/EnableMapper.java b/bus-starter/src/main/java/org/aoju/bus/starter/annotation/EnableMapper.java index cd609f7928..39f7d26c04 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/annotation/EnableMapper.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/annotation/EnableMapper.java @@ -47,8 +47,8 @@ public @interface EnableMapper { /** - * {@link #basePackageClass()}属性的别名。允许更简洁 - * 注释声明,例如: + * {@link #basePackageClass()}属性的别名 允许更简洁 + * 注释声明,例如: * {@code @EnableMapper("org.aoju.pkg")} * {@code @EnableMapper(basePackage = {"org.aoju.pkg"})} * @@ -57,14 +57,14 @@ String[] value() default {}; /** - * 扫描MyBatis接口的基本包。注意,用户接口标记等 + * 扫描MyBatis接口的基本包 注意,用户接口标记等 * * @return the array */ String[] basePackage() default {}; /** - * 类型安全替代{@link #basePackage()}指定包扫描带注释的组件。将扫描指定的每个类的包。 + * 类型安全替代{@link #basePackage()}指定包扫描带注释的组件 将扫描指定的每个类的包 * 考虑在每个包中创建一个特殊的标记类或接口 * * @return the object @@ -72,39 +72,39 @@ Class[] basePackageClass() default {}; /** - * 用于命名检测到的组件的{@link BeanNameGenerator}类。 + * 用于命名检测到的组件的{@link BeanNameGenerator}类 * * @return the object */ Class nameGenerator() default BeanNameGenerator.class; /** - * 此属性指定扫描器将搜索的注释。 - * 扫描器将在基本包中注册所有接口指定的注释。 - * 注意,这可以与markerInterface相结合。 + * 此属性指定扫描器将搜索的注释 + * 扫描器将在基本包中注册所有接口指定的注释 + * 注意,这可以与markerInterface相结合 * * @return the object */ Class annotationClass() default Annotation.class; /** - * 此属性指定扫描程序将搜索的父级。 - * 扫描器将注册基本包中也具有指定的接口类作为父级。 - * 注意,可以与annotationClass结合使用。 + * 此属性指定扫描程序将搜索的父级 + * 扫描器将注册基本包中也具有指定的接口类作为父级 + * 注意,可以与annotationClass结合使用 * * @return the object */ Class markerInterface() default Class.class; /** - * 指定数据源信息,有多数据源时可使用或指定对应多 SqlSessionTemplate。 + * 指定数据源信息,有多数据源时可使用或指定对应多 SqlSessionTemplate * * @return the string */ String sqlSessionTemplate() default ""; /** - * 指定数据源信息,有多数据源时可使用或指定对应多 sqlSessionFactory。 + * 指定数据源信息,有多数据源时可使用或指定对应多 sqlSessionFactory * * @return the string */ @@ -118,7 +118,7 @@ Class factoryBean() default MapperFactoryBean.class; /** - * 通用 Mapper 的配置,一行一个配置 + * 通用 Mapper 的配置,一行一个配置 * * @return the string */ diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/annotation/EnableMessage.java b/bus-starter/src/main/java/org/aoju/bus/starter/annotation/EnableMessage.java index 12b04cfe5e..8b8a7ac5ea 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/annotation/EnableMessage.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/annotation/EnableMessage.java @@ -33,7 +33,7 @@ import java.lang.annotation.Target; /** - * 要使用消息拦截的功能,必须在启动类或配置类上标注此注解 + * 要使用消息拦截的功能,必须在启动类或配置类上标注此注解 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/cache/CacheProperties.java b/bus-starter/src/main/java/org/aoju/bus/starter/cache/CacheProperties.java index 87fa853098..7534a1926f 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/cache/CacheProperties.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/cache/CacheProperties.java @@ -50,11 +50,11 @@ public class CacheProperties { */ private Map map; /** - * 缓存前缀,目前只对redis缓存生效,默认 OAUTH::STATE:: + * 缓存前缀,目前只对redis缓存生效,默认 OAUTH::STATE:: */ private String prefix; /** - * 超时时长,目前只对redis缓存生效,默认3分钟 + * 超时时长,目前只对redis缓存生效,默认3分钟 */ private String timeout; diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/AbstractAutoScanProxy.java b/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/AbstractAutoScanProxy.java index 5a4b2d210e..d9c20a90e7 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/AbstractAutoScanProxy.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/AbstractAutoScanProxy.java @@ -67,10 +67,10 @@ public abstract class AbstractAutoScanProxy extends AbstractAutoProxyCreator { // Spring容器中哪些接口或者类需要被代理 private final Map proxyMap = new HashMap<>(); - // Spring容器中哪些类是类代理,哪些类是通过它的接口做代理 + // Spring容器中哪些类是类代理,哪些类是通过它的接口做代理 private final Map proxyTargetClassMap = new HashMap(); - // 扫描目录,如果不指定,则扫描全局。两种方式运行结果没区别,只是指定扫描目录加快扫描速度,同时可以减少缓存量 + // 扫描目录,如果不指定,则扫描全局 两种方式运行结果没区别,只是指定扫描目录加快扫描速度,同时可以减少缓存量 private String[] scanPackages; // 通过注解确定代理 @@ -135,8 +135,8 @@ public AbstractAutoScanProxy(String[] scanPackages, ProxyMode proxyMode, ScanMod Logger.info("Expose proxy is {}", exposeProxy); Logger.info("-------------------------------------------------"); - // 设定全局拦截器,可以是多个 - // 如果同时设置了全局和额外的拦截器,那么它们都同时工作,全局拦截器先运行,额外拦截器后运行 + // 设定全局拦截器,可以是多个 + // 如果同时设置了全局和额外的拦截器,那么它们都同时工作,全局拦截器先运行,额外拦截器后运行 Class[] commonInterceptorClasses = getCommonInterceptors(); String[] commonInterceptorNames = getCommonInterceptorNames(); @@ -161,10 +161,10 @@ private String[] convertInterceptorNames(Class[] co @Override protected Object[] getAdvicesAndAdvisorsForBean(Class beanClass, String beanName, TargetSource targetSource) { boolean scanPackagesEnabled = scanPackagesEnabled(); - // scanPackagesEnabled=false,表示“只扫描指定目录”的方式未开启,则不会对扫描到的bean进行代理预先判断 + // scanPackagesEnabled=false,表示“只扫描指定目录”的方式未开启,则不会对扫描到的bean进行代理预先判断 if (scanPackagesEnabled) { boolean scanPackagesContained = scanPackagesContained(beanClass); - // 如果beanClass的类路径,未包含在扫描目录中,返回DO_NOT_PROXY + // 如果beanClass的类路径,未包含在扫描目录中,返回DO_NOT_PROXY if (!scanPackagesContained) { return DO_NOT_PROXY; } @@ -193,7 +193,7 @@ protected Object[] getAdvicesAndAdvisorsForBean(Class beanClass, String beanN } } - // 扫描实现类(如果接口上没找到注解, 就找实现类的注解) + // 扫描实现类(如果接口上没找到注解, 就找实现类的注解) Object[] proxyInterceptors = scanAndProxyForTarget(targetClass, beanName, true); if (proxyInterceptors != DO_NOT_PROXY) { return proxyInterceptors; @@ -206,7 +206,7 @@ protected Object[] scanAndProxyForTarget(Class targetClass, String beanName, String targetClassName = targetClass.getCanonicalName(); Object[] interceptors = getInterceptors(targetClass); - // 排除java开头的接口,例如java.io.Serializable,java.io.Closeable等,执行不被代理 + // 排除java开头的接口,例如java.io.Serializable,java.io.Closeable等,执行不被代理 if (StringUtils.isNotEmpty(targetClassName) && !targetClassName.startsWith("java.")) { // 避免对同一个接口或者类扫描多次 Boolean proxied = proxyMap.get(targetClassName); @@ -217,18 +217,18 @@ protected Object[] scanAndProxyForTarget(Class targetClass, String beanName, } else { Object[] proxyInterceptors = null; switch (proxyMode) { - // 只通过扫描到接口名或者类名上的注解后,来确定是否要代理 + // 只通过扫描到接口名或者类名上的注解后,来确定是否要代理 case BY_CLASS_ANNOTATION_ONLY: proxyInterceptors = scanAndProxyForClass(targetClass, targetClassName, beanName, interceptors, proxyTargetClass); break; - // 只通过扫描到接口或者类方法上的注解后,来确定是否要代理 + // 只通过扫描到接口或者类方法上的注解后,来确定是否要代理 case BY_METHOD_ANNOTATION_ONLY: proxyInterceptors = scanAndProxyForMethod(targetClass, targetClassName, beanName, interceptors, proxyTargetClass); break; // 上述两者都可以 case BY_CLASS_OR_METHOD_ANNOTATION: Object[] classProxyInterceptors = scanAndProxyForClass(targetClass, targetClassName, beanName, interceptors, proxyTargetClass); - // 没有接口或者类名上扫描到目标注解,那么扫描接口或者类的方法上的目标注解 + // 没有接口或者类名上扫描到目标注解,那么扫描接口或者类的方法上的目标注解 Object[] methodProxyInterceptors = scanAndProxyForMethod(targetClass, targetClassName, beanName, interceptors, proxyTargetClass); if (classProxyInterceptors != DO_NOT_PROXY || methodProxyInterceptors != DO_NOT_PROXY) { proxyInterceptors = interceptors; @@ -278,11 +278,11 @@ protected Object[] scanAndProxyForClass(Class targetClass, String targetClass if (scanMode == ScanMode.FOR_CLASS_ANNOTATION_ONLY || scanMode == ScanMode.FOR_CLASS_OR_METHOD_ANNOTATION) { classAnnotationScanned(targetClass, classAnnotation); } else { - // 如果“注解扫描后处理”不开启,没必要再往下执行循环,直接返回 + // 如果“注解扫描后处理”不开启,没必要再往下执行循环,直接返回 return interceptors; } - // 目标注解被扫描到,proxied赋值为true,即认为该接口或者类被代理 + // 目标注解被扫描到,proxied赋值为true,即认为该接口或者类被代理 if (!proxied) { proxied = true; } @@ -304,11 +304,11 @@ protected Object[] scanAndProxyForMethod(Class targetClass, String targetClas if (scanMode == ScanMode.FOR_METHOD_ANNOTATION_ONLY || scanMode == ScanMode.FOR_CLASS_OR_METHOD_ANNOTATION) { methodAnnotationScanned(targetClass, method, methodAnnotation); } else { - // 如果“注解扫描后处理”不开启,没必要再往下执行循环,直接返回 + // 如果“注解扫描后处理”不开启,没必要再往下执行循环,直接返回 return interceptors; } - // 目标注解被扫描到,proxied赋值为true,即认为该接口或者类被代理 + // 目标注解被扫描到,proxied赋值为true,即认为该接口或者类被代理 if (!proxied) { proxied = true; } @@ -323,16 +323,16 @@ protected Object[] scanAndProxyForMethod(Class targetClass, String targetClas public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { Object object = super.postProcessBeforeInitialization(bean, beanName); - // 前置扫描,把Bean名称和Bean对象关联存入Map + // 前置扫描,把Bean名称和Bean对象关联存入Map boolean scanPackagesEnabled = scanPackagesEnabled(); if (scanPackagesEnabled) { boolean scanPackagesContained = scanPackagesContained(bean.getClass()); if (scanPackagesContained) { - // 如果beanClass的类路径,包含在扫描目录中,则加入beanMap + // 如果beanClass的类路径,包含在扫描目录中,则加入beanMap beanMap.put(beanName, bean); } } else { - // scanPackagesEnabled=false,表示“只扫描指定目录”的方式未开启,则所有扫描到的bean都加入beanMap + // scanPackagesEnabled=false,表示“只扫描指定目录”的方式未开启,则所有扫描到的bean都加入beanMap beanMap.put(beanName, bean); } return object; @@ -340,7 +340,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro @Override protected boolean shouldProxyTargetClass(Class beanClass, String beanName) { - // 设置不同场景下的接口代理,还是类代理 + // 设置不同场景下的接口代理,还是类代理 Boolean proxyTargetClass = proxyTargetClassMap.get(beanName); if (proxyTargetClass != null) { return proxyTargetClass; @@ -372,9 +372,9 @@ protected boolean scanPackagesContained(Class beanClass) { } // 获取切面拦截类的方式 - // 1. 根据targetClass从额外拦截类列表中去取(接口代理targetClass是接口类,类代理targetClass是类) - // 2. 如果从额外拦截类列表中没取到,就从全局拦截类列表中去取(PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS) - // 3. 如果从全局拦截类列表中没取到,就不代理(DO_NOT_PROXY) + // 1. 根据targetClass从额外拦截类列表中去取(接口代理targetClass是接口类,类代理targetClass是类) + // 2. 如果从额外拦截类列表中没取到,就从全局拦截类列表中去取(PROXY_WITHOUT_ADDITIONAL_INTERCEPTORS) + // 3. 如果从全局拦截类列表中没取到,就不代理(DO_NOT_PROXY) protected Object[] getInterceptors(Class targetClass) { Object[] interceptors = getAdditionalInterceptors(targetClass); if (ArrayUtils.isNotEmpty(interceptors)) { @@ -389,30 +389,30 @@ protected Object[] getInterceptors(Class targetClass) { return DO_NOT_PROXY; } - // 返回具有调用拦截的全局切面实现类,拦截类必须实现MethodInterceptor接口, 可以多个,通过@Component("xxx")方式寻址 - // 如果返回null, 全局切面代理关闭 + // 返回具有调用拦截的全局切面实现类,拦截类必须实现MethodInterceptor接口, 可以多个,通过@Component("xxx")方式寻址 + // 如果返回null, 全局切面代理关闭 protected abstract Class[] getCommonInterceptors(); - // 返回具有调用拦截的全局切面实现类的Bean名,拦截类必须实现MethodInterceptor接口, 可以多个 - // 如果返回null, 全局切面代理关闭 + // 返回具有调用拦截的全局切面实现类的Bean名,拦截类必须实现MethodInterceptor接口, 可以多个 + // 如果返回null, 全局切面代理关闭 protected abstract String[] getCommonInterceptorNames(); - // 返回额外的拦截类实例列表,拦截类必须实现MethodInterceptor接口,分别对不同的接口或者类赋予不同的拦截类,可以多个 - // 如果返回null, 额外切面代理关闭 + // 返回额外的拦截类实例列表,拦截类必须实现MethodInterceptor接口,分别对不同的接口或者类赋予不同的拦截类,可以多个 + // 如果返回null, 额外切面代理关闭 protected abstract MethodInterceptor[] getAdditionalInterceptors(Class targetClass); - // 返回接口名或者类名上的注解列表,可以多个, 如果接口名或者类名上存在一个或者多个该列表中的注解,即认为该接口或者类需要被代理和扫描 - // 如果返回null,则对列表中的注解不做代理和扫描 + // 返回接口名或者类名上的注解列表,可以多个, 如果接口名或者类名上存在一个或者多个该列表中的注解,即认为该接口或者类需要被代理和扫描 + // 如果返回null,则对列表中的注解不做代理和扫描 protected abstract Class[] getClassAnnotations(); - // 返回接口或者类的方法名上的注解,可以多个,如果接口或者类中方法名上存在一个或者多个该列表中的注解,即认为该接口或者类需要被代理和扫描 - // 如果返回null,则对列表中的注解不做代理和扫描 + // 返回接口或者类的方法名上的注解,可以多个,如果接口或者类中方法名上存在一个或者多个该列表中的注解,即认为该接口或者类需要被代理和扫描 + // 如果返回null,则对列表中的注解不做代理和扫描 protected abstract Class[] getMethodAnnotations(); - // 一旦指定的接口或者类名上的注解被扫描到,将会触发该方法 + // 一旦指定的接口或者类名上的注解被扫描到,将会触发该方法 protected abstract void classAnnotationScanned(Class targetClass, Class classAnnotation); - // 一旦指定的接口或者类的方法名上的注解被扫描到,将会触发该方法 + // 一旦指定的接口或者类的方法名上的注解被扫描到,将会触发该方法 protected abstract void methodAnnotationScanned(Class targetClass, Method method, Class methodAnnotation); } diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/AbstractInterceptor.java b/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/AbstractInterceptor.java index be3feba381..a749c69169 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/AbstractInterceptor.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/AbstractInterceptor.java @@ -49,10 +49,10 @@ */ public abstract class AbstractInterceptor implements MethodInterceptor { - // 通过标准反射来获取变量名,适用于接口代理 + // 通过标准反射来获取变量名,适用于接口代理 private ParameterNameDiscoverer standardReflectionParameterNameDiscoverer = new StandardReflectionParameterNameDiscoverer(); - // 通过解析字节码文件的本地变量表来获取的,只支持CGLIG(ASM library),适用于类代理 + // 通过解析字节码文件的本地变量表来获取的,只支持CGLIG(ASM library),适用于类代理 private ParameterNameDiscoverer localVariableTableParameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer(); public boolean isCglibAopProxy(MethodInvocation invocation) { @@ -136,11 +136,11 @@ public Object[] getArguments(MethodInvocation invocation) { return invocation.getArguments(); } - // 获取参数注解对应的参数值。例如方法doXX(@MyAnnotation String id),根据MyAnnotation注解和String类型,获得id的值 + // 获取参数注解对应的参数值 例如方法doXX(@MyAnnotation String id),根据MyAnnotation注解和String类型,获得id的值 // 但下面的方法只适用于同时满足如下三个条件的场景(更多场景请自行扩展): - // 1. 方法注解parameterAnnotationType,只能放在若干个参数中的一个 - // 2. 方法注解parameterAnnotationType,对应的参数类型必须匹配给定的类型parameterType - // 3. 方法注解parameterAnnotationType,对应的参数值不能为null + // 1. 方法注解parameterAnnotationType,只能放在若干个参数中的一个 + // 2. 方法注解parameterAnnotationType,对应的参数类型必须匹配给定的类型parameterType + // 3. 方法注解parameterAnnotationType,对应的参数值不能为null public T getValueByParameterAnnotation(MethodInvocation invocation, Class parameterAnnotationType, Class parameterType) { String methodName = getMethodName(invocation); String parameterTypesValue = getMethodParameterTypesValue(invocation); diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/mode/ProxyMode.java b/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/mode/ProxyMode.java index 52955c7efc..71260f7e8d 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/mode/ProxyMode.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/core/proxy/mode/ProxyMode.java @@ -29,9 +29,9 @@ * @since JDK 1.8+ */ public enum ProxyMode { - // 只通过扫描到接口名或者类名上的注解后,来确定是否要代理 + // 只通过扫描到接口名或者类名上的注解后,来确定是否要代理 BY_CLASS_ANNOTATION_ONLY, - // 只通过扫描到接口或者类方法上的注解后,来确定是否要代理 + // 只通过扫描到接口或者类方法上的注解后,来确定是否要代理 BY_METHOD_ANNOTATION_ONLY, // 上述两者都可以 BY_CLASS_OR_METHOD_ANNOTATION diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/core/registrar/AbstractRegistrar.java b/bus-starter/src/main/java/org/aoju/bus/starter/core/registrar/AbstractRegistrar.java index 1ca75614a6..c53a641c95 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/core/registrar/AbstractRegistrar.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/core/registrar/AbstractRegistrar.java @@ -54,8 +54,8 @@ /** *

      Title: bean注册及注解

      *

      Description: - * 1.本地只有接口并加相关的注解,那么执行对应的切面调用方式 - * 2.本地有接口(不管是否加注解),并也有实现类,执行实现类逻辑 + * 1.本地只有接口并加相关的注解,那么执行对应的切面调用方式 + * 2.本地有接口(不管是否加注解),并也有实现类,执行实现类逻辑 * 3.参考@FeignClient的用法

      * * @author Kimi Liu diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/cors/CorsProperties.java b/bus-starter/src/main/java/org/aoju/bus/starter/cors/CorsProperties.java index b4fa6516ea..296a851c33 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/cors/CorsProperties.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/cors/CorsProperties.java @@ -65,7 +65,7 @@ public class CorsProperties { */ private Boolean allowCredentials = true; /** - * 预检请求的有效期,单位为秒。有效期内,不会重复发送预检请求 + * 预检请求的有效期,单位为秒 有效期内,不会重复发送预检请求 */ private Long maxAge = 1800L; diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/druid/DruidMonitorConfiguration.java b/bus-starter/src/main/java/org/aoju/bus/starter/druid/DruidMonitorConfiguration.java index b36651c507..169f304539 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/druid/DruidMonitorConfiguration.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/druid/DruidMonitorConfiguration.java @@ -67,7 +67,7 @@ public ServletRegistrationBean druidStatViewServlet() { //白名单: servletRegistrationBean.addInitParameter("allow", properties.getAllow()); Logger.info("allow ---> " + properties.getAllow()); - //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. + //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. servletRegistrationBean.addInitParameter("deny", properties.getDeny()); Logger.info("deny ---> " + properties.getDeny()); //登录查看信息的账号密码. diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/druid/MultiDataSource.java b/bus-starter/src/main/java/org/aoju/bus/starter/druid/MultiDataSource.java index c49636e75c..6805edea4a 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/druid/MultiDataSource.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/druid/MultiDataSource.java @@ -72,7 +72,7 @@ protected Object determineCurrentLookupKey() { } /** - * 在获取key的集合,目的只是为了添加一些告警日志 + * 在获取key的集合,目的只是为了添加一些告警日志 */ @Override public void afterPropertiesSet() { @@ -120,7 +120,7 @@ public Object switchByMethod(ProceedingJoinPoint point) throws Throwable { for (int i = params.length - 1; i >= 0; i--) { Parameter parameter = params[i]; if (parameter.getAnnotation(DataSource.class) != null && point.getArgs()[i] instanceof String) { - //key值即该参数的值,要求该参数必须为String类型 + //key值即该参数的值,要求该参数必须为String类型 source = (String) point.getArgs()[i]; isDynamic = true; break; diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/i18n/LocaleMessage.java b/bus-starter/src/main/java/org/aoju/bus/starter/i18n/LocaleMessage.java index f87bdc9b5f..747472ff80 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/i18n/LocaleMessage.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/i18n/LocaleMessage.java @@ -66,7 +66,7 @@ public String getMessage(String code, Object[] args) { * @return 返回获取到的结果 */ public String getMessage(String code, Object[] args, String defaultMessage) { - //这里使用比较方便的方法,不依赖request. + //这里使用比较方便的方法,不依赖request. return messageSource.getMessage(code, args, defaultMessage, LocaleContextHolder.getLocale()); } diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/mapper/MapperClassScanner.java b/bus-starter/src/main/java/org/aoju/bus/starter/mapper/MapperClassScanner.java index c743972d30..f2c129e7eb 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/mapper/MapperClassScanner.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/mapper/MapperClassScanner.java @@ -45,14 +45,14 @@ public class MapperClassScanner extends MapperScannerConfigurer { private MapperBuilder mapperBuilder = new MapperBuilder(); /** - * 注册完成后,对MapperFactoryBean的类进行特殊处理 + * 注册完成后,对MapperFactoryBean的类进行特殊处理 * * @param registry 注册 */ @Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) { super.postProcessBeanDefinitionRegistry(registry); - //如果没有注册过接口,就注册默认的Mapper接口 + //如果没有注册过接口,就注册默认的Mapper接口 this.mapperBuilder.ifEmptyRegisterDefaultInterface(); String[] names = registry.getBeanDefinitionNames(); GenericBeanDefinition definition; diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/mapper/MapperFactoryBean.java b/bus-starter/src/main/java/org/aoju/bus/starter/mapper/MapperFactoryBean.java index 46832821cc..6d63183dcc 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/mapper/MapperFactoryBean.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/mapper/MapperFactoryBean.java @@ -69,7 +69,7 @@ protected void checkDaoConfig() { ErrorContext.instance().reset(); } } - //直接针对接口处理通用接口方法对应的 MappedStatement 是安全的,通用方法不会出现 IncompleteElementException 的情况 + //直接针对接口处理通用接口方法对应的 MappedStatement 是安全的,通用方法不会出现 IncompleteElementException 的情况 if (configuration.hasMapper(this.mapperInterface) && mapperBuilder != null && mapperBuilder.isExtendCommonMapper(this.mapperInterface)) { mapperBuilder.processConfiguration(getSqlSession().getConfiguration(), this.mapperInterface); } @@ -109,9 +109,9 @@ public void setMapperInterface(Class mapperInterface) { } /** - * 将添加的标志返回到MyBatis配置中。 - * 如果映射器将被添加到MyBatis,则返回true, - * 如果它还没有被添加到MyBatis中注册。 + * 将添加的标志返回到MyBatis配置中 + * 如果映射器将被添加到MyBatis,则返回true, + * 如果它还没有被添加到MyBatis中注册 * * @return the boolean */ @@ -120,10 +120,10 @@ public boolean isAddToConfig() { } /** - * 如果addToConfig为false,映射器将不会添加到MyBatis。这意味着 + * 如果addToConfig为false,映射器将不会添加到MyBatis 这意味着 * 它必须包含在mybatisconfig .xml中 - * 如果是真的,映射器将被添加到MyBatis中,如果还没有 - * 注册。默认情况下addToCofig为真。 + * 如果是真的,映射器将被添加到MyBatis中,如果还没有 + * 注册 默认情况下addToCofig为真 * * @param addToConfig 是否添加 */ diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/mapper/SQLPerformanceHandler.java b/bus-starter/src/main/java/org/aoju/bus/starter/mapper/SQLPerformanceHandler.java index 94d54b438a..0ddba1a01d 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/mapper/SQLPerformanceHandler.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/mapper/SQLPerformanceHandler.java @@ -94,13 +94,13 @@ public static String showSql(Configuration configuration, BoundSql boundSql) { .replaceAll("[\\s]+", " ") .replaceAll("\\?", id); if (!CollUtils.isEmpty(parameterMappings) && parameterObject != null) { - // 获取类型处理器注册器,类型处理器的功能是进行java类型和数据库类型的转换 - // 如果根据parameterObject.getClass()可以找到对应的类型,则替换 + // 获取类型处理器注册器,类型处理器的功能是进行java类型和数据库类型的转换 + // 如果根据parameterObject.getClass()可以找到对应的类型,则替换 TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry(); if (typeHandlerRegistry.hasTypeHandler(parameterObject.getClass())) { sql = sql.replaceFirst(id, Matcher.quoteReplacement(getParameterValue(parameterObject))); } else { - // MetaObject主要是封装了originalObject对象,提供了get和set的方法 + // MetaObject主要是封装了originalObject对象,提供了get和set的方法 // 主要支持对JavaBean、Collection、Map三种类型对象的操作 MetaObject metaObject = configuration.newMetaObject(parameterObject); for (ParameterMapping parameterMapping : parameterMappings) { @@ -112,7 +112,7 @@ public static String showSql(Configuration configuration, BoundSql boundSql) { Object obj = boundSql.getAdditionalParameter(propertyName); // 该分支是动态sql sql = sql.replaceFirst(id, Matcher.quoteReplacement(getParameterValue(obj))); } else { - // 打印出缺失,提醒该参数缺失并防止错位 + // 打印出缺失,提醒该参数缺失并防止错位 sql = sql.replaceFirst(id, "缺失"); } } diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/sensitive/RequestBodyAdvice.java b/bus-starter/src/main/java/org/aoju/bus/starter/sensitive/RequestBodyAdvice.java index ce180021ab..0a4d008121 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/sensitive/RequestBodyAdvice.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/sensitive/RequestBodyAdvice.java @@ -57,11 +57,11 @@ public class RequestBodyAdvice extends BaseAdvice SensitiveProperties properties; /** - * 首次调用,以确定是否应用此拦截. + * 首次调用,以确定是否应用此拦截. * * @param parameter 方法参数 - * @param type 目标类型,不一定与方法相同 - * 参数类型,例如 {@code HttpEntity}. + * @param type 目标类型,不一定与方法相同 + * 参数类型,例如 {@code HttpEntity}. * @param converterType 转换器类型 * @return true/false 是否应该调用此拦截 */ @@ -85,10 +85,10 @@ public boolean supports(MethodParameter parameter, * * @param inputMessage HTTP输入消息 * @param parameter 方法参数 - * @param type 目标类型,不一定与方法相同 - * 参数类型,例如 {@code HttpEntity}. + * @param type 目标类型,不一定与方法相同 + * 参数类型,例如 {@code HttpEntity}. * @param converterType 转换器类型 - * @return 输入请求或新实例,永远不会 {@code null} + * @return 输入请求或新实例, 永远不会 {@code null} */ @Override public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, @@ -123,8 +123,8 @@ public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, * @param body 在调用第一个通知之前将其设置为转换器对象 * @param inputMessage HTTP输入消息 * @param parameter 方法参数 - * @param type 目标类型,不一定与方法相同 - * 参数类型,例如 {@code HttpEntity}. + * @param type 目标类型,不一定与方法相同 + * 参数类型,例如 {@code HttpEntity}. * @param converterType 转换器类型 * @return 相同的主体或新实例 */ @@ -137,15 +137,15 @@ public Object afterBodyRead(Object body, HttpInputMessage inputMessage, } /** - * 如果主体为空,则调用第二个(也是最后一个). + * 如果主体为空,则调用第二个(也是最后一个). * * @param body 通常在调用第一个通知之前将其设置为{@code null} * @param inputMessage HTTP输入消息 * @param parameter 方法参数 - * @param type 目标类型,不一定与方法相同 - * 参数类型,例如 {@code HttpEntity}. + * @param type 目标类型,不一定与方法相同 + * 参数类型,例如 {@code HttpEntity}. * @param converterType 转换器类型 - * @return 要使用的值或{@code null},该值可能会引发{@code HttpMessageNotReadableException}. + * @return 要使用的值或{@code null},该值可能会引发{@code HttpMessageNotReadableException}. */ @Override public Object handleEmptyBody(Object body, HttpInputMessage inputMessage, diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/swagger/SwaggerConfiguration.java b/bus-starter/src/main/java/org/aoju/bus/starter/swagger/SwaggerConfiguration.java index 89062ffca6..1e5e21166e 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/swagger/SwaggerConfiguration.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/swagger/SwaggerConfiguration.java @@ -81,7 +81,7 @@ public Docket createRestApi() { .name("X-Access-Token") // 参数名 .defaultValue("") // 默认值 .description("X-Access-Token格式为:" + ObjectID.id()).modelRef(new ModelRef("string"))// 指定参数值的类型 - .required(false).build(); // 非必需,这里是全局配置,然而在登陆的时候是不用验证的 + .required(false).build(); // 非必需,这里是全局配置,然而在登陆的时候是不用验证的 List aParameters = new ArrayList(); aParameters.add(aParameterBuilder.build()); return new Docket(DocumentationType.SWAGGER_2) diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/tracer/MethodExecuteCostHandler.java b/bus-starter/src/main/java/org/aoju/bus/starter/tracer/MethodExecuteCostHandler.java index 76fb11c638..83c613d74a 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/tracer/MethodExecuteCostHandler.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/tracer/MethodExecuteCostHandler.java @@ -68,7 +68,7 @@ public Object costLogger(ProceedingJoinPoint pjp) throws Throwable { //耗时 long cost = System.currentTimeMillis() - startTime; - //当设置了超时时间,但耗时小于超时时间,不进行日志打印,直接返回 (只有耗时大于超时时间才进行日志打印) + //当设置了超时时间,但耗时小于超时时间,不进行日志打印,直接返回 (只有耗时大于超时时间才进行日志打印) if (tacerCostLogger.timeout() != -1 && cost < tacerCostLogger.timeout()) { return obj; } @@ -76,7 +76,7 @@ public Object costLogger(ProceedingJoinPoint pjp) throws Throwable { //方法名 String methodName = null; if (StringUtils.isEmpty(tacerCostLogger.methodName())) { - //当methodName为默认值时,用signature(原方法名)代替 + //当methodName为默认值时,用signature(原方法名)代替 methodName = pjp.getSignature().toString(); } else if (tacerCostLogger.methodName() != null) { //有值则用值 diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/validate/AutoValidateAdvice.java b/bus-starter/src/main/java/org/aoju/bus/starter/validate/AutoValidateAdvice.java index f20235ec37..4834c36c56 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/validate/AutoValidateAdvice.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/validate/AutoValidateAdvice.java @@ -56,7 +56,7 @@ public Object access(AspectjProxyChain proxyChain) throws Throwable { method = proxyChain.getTarget().getClass().getDeclaredMethod(method.getName(), method.getParameterTypes()); } catch (NoSuchMethodException e) { - Logger.info("无法在实现类中找到指定的方法,所以无法实现校验器验证,method:" + method.getName()); + Logger.info("无法在实现类中找到指定的方法,所以无法实现校验器验证,method:" + method.getName()); return proxyChain.doProxyChain(agruements); } } diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/wrapper/GenieWrapperHandler.java b/bus-starter/src/main/java/org/aoju/bus/starter/wrapper/GenieWrapperHandler.java index 090bd2eddf..eb54de2453 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/wrapper/GenieWrapperHandler.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/wrapper/GenieWrapperHandler.java @@ -38,8 +38,8 @@ import javax.servlet.http.HttpServletResponse; /** - * 允许定制处理程序执行链的工作流,可以注册任何数量的现有或自定义拦截器 - * 对于某些处理程序组,添加常见的预处理行为不需要修改每个处理程序实现 + * 允许定制处理程序执行链的工作流,可以注册任何数量的现有或自定义拦截器 + * 对于某些处理程序组,添加常见的预处理行为不需要修改每个处理程序实现 * * @author Kimi Liu * @version 5.2.2 @@ -85,14 +85,14 @@ private static void isHandle(String method, String url) { } /** - * 业务处理器处理请求之前被调用,对用户的request进行处理,若返回值为true, - * 则继续调用后续的拦截器和目标方法;若返回值为false, 则终止请求; - * 这里可以加上登录校验,权限拦截、请求限流等 + * 业务处理器处理请求之前被调用,对用户的request进行处理,若返回值为true, + * 则继续调用后续的拦截器和目标方法;若返回值为false, 则终止请求; + * 这里可以加上登录校验,权限拦截、请求限流等 * * @param request 当前的HTTP请求 * @param response 当前的HTTP响应 * @param handler 执行的处理程序 - * @return 如果执行链应该继续执行,则为:true 否则:false + * @return 如果执行链应该继续执行, 则为:true 否则:false */ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { @@ -111,13 +111,13 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons } /** - * 拦截处理程序的执行。实际上是在HandlerAdapter之后调用的 - * 调用处理程序,但在DispatcherServlet呈现视图之前。 - * 可以通过给定的ModelAndView向视图公开额外的模型对象。 - * DispatcherServlet在一个执行链中处理一个处理程序,由 - * 任意数量的拦截器,处理程序本身在最后。 - * 使用这种方法,每个拦截器可以对一个执行进行后处理, - * 按执行链的相反顺序应用。 + * 拦截处理程序的执行 实际上是在HandlerAdapter之后调用的 + * 调用处理程序,但在DispatcherServlet呈现视图之前 + * 可以通过给定的ModelAndView向视图公开额外的模型对象 + * DispatcherServlet在一个执行链中处理一个处理程序,由 + * 任意数量的拦截器,处理程序本身在最后 + * 使用这种方法,每个拦截器可以对一个执行进行后处理, + * 按执行链的相反顺序应用 * * @param request 当前的HTTP请求 * @param response 当前的HTTP响应 @@ -129,11 +129,11 @@ public void postHandle(HttpServletRequest request, HttpServletResponse response, } /** - * 完成请求处理后回调,将调用处理程序执行的任何结果, + * 完成请求处理后回调,将调用处理程序执行的任何结果, * 因此允许进行适当的资源清理等 * 注意:只有在拦截器的{@code preHandle} 方法返回{@code true} - * 与{@code postHandle}方法一样,将在每个方法上调用该方法, - * 在链中的拦截器的顺序是相反的,所以第一个拦截器是最后调用的 + * 与{@code postHandle}方法一样,将在每个方法上调用该方法, + * 在链中的拦截器的顺序是相反的,所以第一个拦截器是最后调用的 * * @param request 当前的HTTP请求 * @param response 当前的HTTP响应 diff --git a/bus-starter/src/main/java/org/aoju/bus/starter/wrapper/WrapperConfiguration.java b/bus-starter/src/main/java/org/aoju/bus/starter/wrapper/WrapperConfiguration.java index fb1be7de88..9cd986241c 100755 --- a/bus-starter/src/main/java/org/aoju/bus/starter/wrapper/WrapperConfiguration.java +++ b/bus-starter/src/main/java/org/aoju/bus/starter/wrapper/WrapperConfiguration.java @@ -117,7 +117,7 @@ private static class BodyCacheFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { final String method = request.getMethod(); - // 如果不是 POST PATCH PUT 等有流的接口则无需进行类型转换,提高性能 + // 如果不是 POST PATCH PUT 等有流的接口则无需进行类型转换,提高性能 if (Httpd.POST.equals(method) || Httpd.PATCH.equals(method) || Httpd.PUT.equals(method)) { if (!(request instanceof CacheRequestWrapper)) { request = new CacheRequestWrapper(request); diff --git a/bus-storage/src/main/java/org/aoju/bus/storage/metric/Cache.java b/bus-storage/src/main/java/org/aoju/bus/storage/metric/Cache.java index ce625bf324..50387169a4 100755 --- a/bus-storage/src/main/java/org/aoju/bus/storage/metric/Cache.java +++ b/bus-storage/src/main/java/org/aoju/bus/storage/metric/Cache.java @@ -24,7 +24,7 @@ package org.aoju.bus.storage.metric; /** - * 缓存,用来缓存State + * 缓存,用来缓存State * * @author Kimi Liu * @version 5.2.2 @@ -41,7 +41,7 @@ public interface Cache { void set(String key, String value); /** - * 设置缓存,指定过期时间 + * 设置缓存,指定过期时间 * * @param key 缓存KEY * @param value 缓存内容 @@ -58,10 +58,10 @@ public interface Cache { String get(String key); /** - * 是否存在key,如果对应key的value值已过期,也返回false + * 是否存在key,如果对应key的value值已过期,也返回false * * @param key 缓存KEY - * @return true:存在key,并且value没过期;false:key不存在或者已过期 + * @return true:存在key,并且value没过期;false:key不存在或者已过期 */ boolean containsKey(String key); diff --git a/bus-storage/src/main/java/org/aoju/bus/storage/metric/DefaultCache.java b/bus-storage/src/main/java/org/aoju/bus/storage/metric/DefaultCache.java index e5f1d558f0..6a00513535 100755 --- a/bus-storage/src/main/java/org/aoju/bus/storage/metric/DefaultCache.java +++ b/bus-storage/src/main/java/org/aoju/bus/storage/metric/DefaultCache.java @@ -48,8 +48,8 @@ public class DefaultCache implements Cache { /** * 默认缓存过期时间:3分钟 - * 鉴于授权过程中,根据个人的操作习惯,或者授权平台的不同(google等),每个授权流程的耗时也有差异,不过单个授权流程一般不会太长 - * 本缓存工具默认的过期时间设置为3分钟,即程序默认认为3分钟内的授权有效,超过3分钟则默认失效,失效后删除 + * 鉴于授权过程中,根据个人的操作习惯,或者授权平台的不同(google等),每个授权流程的耗时也有差异,不过单个授权流程一般不会太长 + * 本缓存工具默认的过期时间设置为3分钟,即程序默认认为3分钟内的授权有效,超过3分钟则默认失效,失效后删除 */ public static long timeout = 3 * 60 * 1000; @@ -121,10 +121,10 @@ public String get(String key) { } /** - * 是否存在key,如果对应key的value值已过期,也返回false + * 是否存在key,如果对应key的value值已过期,也返回false * * @param key 缓存KEY - * @return true:存在key,并且value没过期;false:key不存在或者已过期 + * @return true:存在key,并且value没过期;false:key不存在或者已过期 */ @Override public boolean containsKey(String key) { @@ -155,7 +155,7 @@ public void pruneCache() { /** * 定时清理 * - * @param delay 间隔时长,单位毫秒 + * @param delay 间隔时长,单位毫秒 */ public void schedulePrune(long delay) { CacheScheduler.INSTANCE.schedule(this::pruneCache, delay); diff --git a/bus-storage/src/main/java/org/aoju/bus/storage/metric/DefaultStorageCache.java b/bus-storage/src/main/java/org/aoju/bus/storage/metric/DefaultStorageCache.java index b759d855ec..f50eb060b1 100755 --- a/bus-storage/src/main/java/org/aoju/bus/storage/metric/DefaultStorageCache.java +++ b/bus-storage/src/main/java/org/aoju/bus/storage/metric/DefaultStorageCache.java @@ -78,10 +78,10 @@ public String get(String key) { } /** - * 是否存在key,如果对应key的value值已过期,也返回false + * 是否存在key,如果对应key的value值已过期,也返回false * * @param key 缓存key - * @return true:存在key,并且value没过期;false:key不存在或者已过期 + * @return true:存在key,并且value没过期;false:key不存在或者已过期 */ @Override public boolean containsKey(String key) { diff --git a/bus-storage/src/main/java/org/aoju/bus/storage/metric/StorageCache.java b/bus-storage/src/main/java/org/aoju/bus/storage/metric/StorageCache.java index 1338ec3984..6780b95cd4 100755 --- a/bus-storage/src/main/java/org/aoju/bus/storage/metric/StorageCache.java +++ b/bus-storage/src/main/java/org/aoju/bus/storage/metric/StorageCache.java @@ -24,7 +24,7 @@ package org.aoju.bus.storage.metric; /** - * State缓存接口,方便用户扩展 + * State缓存接口,方便用户扩展 * * @author Kimi Liu * @version 5.2.2 @@ -58,10 +58,10 @@ public interface StorageCache { String get(String key); /** - * 是否存在key,如果对应key的value值已过期,也返回false + * 是否存在key,如果对应key的value值已过期,也返回false * * @param key 缓存key - * @return true:存在key,并且value没过期;false:key不存在或者已过期 + * @return true:存在key,并且value没过期;false:key不存在或者已过期 */ boolean containsKey(String key); diff --git a/bus-storage/src/main/java/org/aoju/bus/storage/provider/AliYunOssProvider.java b/bus-storage/src/main/java/org/aoju/bus/storage/provider/AliYunOssProvider.java index 319f46424d..eef4f465c3 100755 --- a/bus-storage/src/main/java/org/aoju/bus/storage/provider/AliYunOssProvider.java +++ b/bus-storage/src/main/java/org/aoju/bus/storage/provider/AliYunOssProvider.java @@ -78,9 +78,9 @@ public Readers download(String fileName) { @Override public Readers download(String bucket, String fileName) { - // ossObject包含文件所在的存储空间名称、文件名称、文件元信息以及一个输入流。 + // ossObject包含文件所在的存储空间名称、文件名称、文件元信息以及一个输入流 OSSObject ossObject = this.client.getObject(bucket, fileName); - // 读取文件内容。 + // 读取文件内容 try (BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()))) { while (true) { String line = reader.readLine(); diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/Builder.java b/bus-validate/src/main/java/org/aoju/bus/validate/Builder.java index d542edb217..18a771a479 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/Builder.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/Builder.java @@ -80,8 +80,8 @@ public class Builder extends Validator { /** * 被校验对象 - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param 对象 * @param object 原始对象 @@ -93,8 +93,8 @@ public static T on(Object object) { /** * 被校验对象 - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param 对象 * @param object 原始对象 @@ -108,8 +108,8 @@ public static T on(Object object, Context context) { /** * 被校验对象 *

      - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param 对象 * @param object 原始对象 @@ -123,8 +123,8 @@ public static T on(Object object, Annotation[] annotations) { /** * 被校验对象 *

      - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param 对象 * @param object 原始对象 @@ -139,8 +139,8 @@ public static T on(Object object, Annotation[] annotations, Context context) /** * 被校验对象 *

      - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param 对象 * @param object 原始对象 diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/Context.java b/bus-validate/src/main/java/org/aoju/bus/validate/Context.java index 2f4c2fc37b..3990d8e853 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/Context.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/Context.java @@ -44,7 +44,7 @@ public class Context { /** - * 全局定义的错误码, 如果校验注解使用了-1 作为错误码,默认替换为该全局错误码 + * 全局定义的错误码, 如果校验注解使用了-1 作为错误码,默认替换为该全局错误码 */ private String errcode = Builder.DEFAULT_ERRCODE; @@ -54,15 +54,15 @@ public class Context { private List group = new ArrayList<>(); /** - * 全局校验异常。 + * 全局校验异常 *

      - * 当校验失败时,如果定义了全局校验异常,则抛出全局校验异常; + * 当校验失败时,如果定义了全局校验异常,则抛出全局校验异常; *

      - * 然后判断如果定义了字段异常,则抛出字段异常; + * 然后判断如果定义了字段异常,则抛出字段异常; *

      - * 最后判断如果定义了校验器注解异常,则抛出校验器注解上定义的异常; + * 最后判断如果定义了校验器注解异常,则抛出校验器注解上定义的异常; *

      - * 如果都没定义,则抛出{@link ValidateException} + * 如果都没定义,则抛出{@link ValidateException} */ private Class exception; @@ -84,10 +84,10 @@ public class Context { /** * 快速失败, 默认:true *

      - * true: 表示如果参数一旦校验,立刻抛出校验失败异常 + * true: 表示如果参数一旦校验,立刻抛出校验失败异常 *

      *

      - * false: 即使存在参数校验失败,也必须等到该参数所有的校验器执行后,才会抛出异常 + * false: 即使存在参数校验失败,也必须等到该参数所有的校验器执行后,才会抛出异常 *

      */ private boolean fast = true; diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/Provider.java b/bus-validate/src/main/java/org/aoju/bus/validate/Provider.java index 76c3112039..85ca3f2fdc 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/Provider.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/Provider.java @@ -50,8 +50,8 @@ public class Provider { /** * 被校验对象 *

      - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param 对象 * @param object 原始对象 @@ -64,8 +64,8 @@ public static T on(Object object) { /** * 被校验对象 *

      - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param 对象 * @param object 原始对象 @@ -79,8 +79,8 @@ public static T on(Object object, Context context) { /** * 被校验对象 *

      - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param 对象 * @param object 原始对象 @@ -94,8 +94,8 @@ public static T on(Object object, Annotation[] annotations) { /** * 被校验对象 *

      - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param 对象 * @param object 原始对象 @@ -110,8 +110,8 @@ public static T on(Object object, Annotation[] annotations, Context context) /** * 被校验对象 *

      - * 每次都创建一个新的对象,避免线程问题 - * 可以使用 {@link ThreadLocal} 简单优化。 + * 每次都创建一个新的对象,避免线程问题 + * 可以使用 {@link ThreadLocal} 简单优化 * * @param 对象 * @param field 当前属性 @@ -170,7 +170,7 @@ public static boolean isMap(Object object) { * * @param group 当前校验组 * @param list 校验环境中校验组属性 - * @return true:当前校验组中为空,或任意一个组环境存在于校验环境中 + * @return true:当前校验组中为空,或任意一个组环境存在于校验环境中 */ public static boolean isGroup(String[] group, List list) { if (group == null || group.length == 0) { diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/Registry.java b/bus-validate/src/main/java/org/aoju/bus/validate/Registry.java index 54636a4d4a..9716980e6e 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/Registry.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/Registry.java @@ -117,7 +117,7 @@ public static void register(String name, Object object) { * 是否包含指定名称的校验器 * * @param name 校验器名称 - * @return true:包含, false:不包含 + * @return true:包含, false:不包含 */ public boolean contains(String name) { return COMPLEX_CACHE.containsKey(name); @@ -127,18 +127,18 @@ public boolean contains(String name) { * 根据校验器名称获取校验器 * * @param name 校验器名称 - * @return 校验器对象,找不到时返回null + * @return 校验器对象, 找不到时返回null */ public Object require(String name) { return COMPLEX_CACHE.get(name); } /** - * 优先根据校验器名称获取校验器,找不到时,根据类型获取校验器对象。 + * 优先根据校验器名称获取校验器,找不到时,根据类型获取校验器对象 * * @param name 校验器名称 * @param clazz 校验器类型 - * @return 校验器对象,找不到时返回null + * @return 校验器对象, 找不到时返回null */ public Object require(String name, Class clazz) { Object object = this.require(name); diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/Validated.java b/bus-validate/src/main/java/org/aoju/bus/validate/Validated.java index 8bbd535d13..d756abd272 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/Validated.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/Validated.java @@ -43,7 +43,7 @@ /** * 被校验对象 *

      - * 注意: 当被校验对象为null时,无法获取到对象的Class,所以不会执行对象的Class上标记的任何校验注解 + * 注意: 当被校验对象为null时,无法获取到对象的Class,所以不会执行对象的Class上标记的任何校验注解 *

      * * @author Kimi Liu @@ -89,7 +89,7 @@ public Validated(Object object) { * 被校验对象 * * @param object 被校验的原始对象 - * @param parentContext 父级校验上下文,当前校验环境会继承所有父级上下文信息,除了是否校验对象内部的属性 + * @param parentContext 父级校验上下文,当前校验环境会继承所有父级上下文信息,除了是否校验对象内部的属性 */ public Validated(Object object, Context parentContext) { this.object = object; @@ -117,7 +117,7 @@ public Validated(Object object, Annotation[] annotations) { * * @param object 被校验的原始对象 * @param annotations 被校验对象上的所有注解 - * @param context 父级校验上下文,当前校验环境会继承所有父级上下文信息,除了是否校验对象内部的属性 + * @param context 父级校验上下文,当前校验环境会继承所有父级上下文信息,除了是否校验对象内部的属性 */ public Validated(Object object, Annotation[] annotations, Context context) { this.object = object; @@ -130,7 +130,7 @@ public Validated(Object object, Annotation[] annotations, Context context) { * * @param object 被校验的原始对象 * @param annotations 被校验对象上的所有注解 - * @param context 父级校验上下文,当前校验环境会继承所有父级上下文信息,除了是否校验对象内部的属性 + * @param context 父级校验上下文,当前校验环境会继承所有父级上下文信息,除了是否校验对象内部的属性 * @param field 属性信息 */ public Validated(Object object, Annotation[] annotations, Context context, String field) { @@ -200,7 +200,7 @@ private Context resolve(Context context, Annotation[] annotations) { /** * 执行校验 - * 如果校验环境设置了快速失败的属性为true,那么一旦出现校验失败,则会抛出异常 + * 如果校验环境设置了快速失败的属性为true,那么一旦出现校验失败,则会抛出异常 * * @return 校验结果收集器 */ @@ -275,11 +275,11 @@ public Property build(Annotation annotation, Object object) { } } if (ObjectUtils.isEmpty(property.getClazz()) || StringUtils.isEmpty(property.getName())) { - throw new InstrumentException("非法的校验注解,没有使用Complex元注解表示校验器:" + annotationType.getName()); + throw new InstrumentException("非法的校验注解,没有使用Complex元注解表示校验器:" + annotationType.getName()); } return property; } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { - throw new InstrumentException("非法的校验注解,没有定义通用的校验属性:" + annotationType.getName(), e); + throw new InstrumentException("非法的校验注解,没有定义通用的校验属性:" + annotationType.getName(), e); } } diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Array.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Array.java index 5c920aaeac..dc0646f817 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Array.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Array.java @@ -29,8 +29,8 @@ * 检查是否为数组或集合 * *

      - * 在任意校验注解类型加上{@code @Array}注解, 会在运行时对该校验对象的类型进行判断 - * 如果是数组或者集合对象,则会对内部元素执行当前所有其他的校验器将, 否则执行对校验对象执行校验器 + * 在任意校验注解类型加上{@code @Array}注解, 会在运行时对该校验对象的类型进行判断 + * 如果是数组或者集合对象,则会对内部元素执行当前所有其他的校验器将, 否则执行对校验对象执行校验器 *

      * * @author Kimi Liu diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Complex.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Complex.java index 22e671865e..0888344a78 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Complex.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Complex.java @@ -26,7 +26,7 @@ import java.lang.annotation.*; /** - * 自定义校验注解元注解,在任意的注解定义上,增加该注解标明这是一个校验注解 + * 自定义校验注解元注解,在任意的注解定义上,增加该注解标明这是一个校验注解 * *

      * 在校验环境 @@ -42,14 +42,14 @@ public @interface Complex { /** - * 校验器名称, 优先使用类型匹配 + * 校验器名称, 优先使用类型匹配 * * @return the string */ String value() default ""; /** - * 校验器类, 优先使用类型匹配 + * 校验器类, 优先使用类型匹配 * * @return the object */ diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Each.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Each.java index 34ffb94df6..8f11c490f9 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Each.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Each.java @@ -30,13 +30,13 @@ import java.lang.annotation.*; /** - * 对数组、集合、Map元素进行校验, 注意,Map对象,只校验内部的值列表 + * 对数组、集合、Map元素进行校验, 注意,Map对象,只校验内部的值列表 * *

      - * 对象为null, 忽略校验 + * 对象为null, 忽略校验 *

      *

      - * 如果不是数组或集合、Map,则忽略校验 + * 如果不是数组或集合、Map,则忽略校验 *

      * * @author Kimi Liu @@ -50,14 +50,14 @@ public @interface Each { /** - * 校验器名称数组,优先使用校验器名称中的校验器,并忽略校验器类中的校验器 + * 校验器名称数组,优先使用校验器名称中的校验器,并忽略校验器类中的校验器 * * @return the array */ String[] value() default {}; /** - * 校验器类数组, 当校验器名称数组为空时,使用校验器类数组中的校验器 + * 校验器类数组, 当校验器名称数组为空时,使用校验器类数组中的校验器 * * @return the object */ diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Equals.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Equals.java index ab703d13c8..5d32360922 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Equals.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Equals.java @@ -31,7 +31,7 @@ /** * 字符串equals *

      - * 默认被校验对象是null时,通过校验 + * 默认被校验对象是null时,通过校验 *

      * * @author Kimi Liu diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/False.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/False.java index f6fee36ef6..a1e87032aa 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/False.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/False.java @@ -42,7 +42,7 @@ public @interface False { /** - * 当参数为null时,是否允许通过校验。true:校验通过 + * 当参数为null时,是否允许通过校验 true:校验通过 * * @return the boolean */ diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Filler.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Filler.java index 4f75ff1af3..d63369fbc0 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Filler.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Filler.java @@ -27,10 +27,10 @@ /** * 字段错误消息插值填充的功能注解 - * 当前的框架内,默认提供的两个插值是: - * field: 注解内定义的字段名称, + * 当前的框架内,默认提供的两个插值是: + * field: 注解内定义的字段名称, * val: 被校验对象的字符串格式 - * 在校验注解内部提供的方法上标记该注解,表示可以在校验注解的errmsg中使用该字符串插值 + * 在校验注解内部提供的方法上标记该注解,表示可以在校验注解的errmsg中使用该字符串插值 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Group.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Group.java index 7ce8e66d88..e623944e07 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Group.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Group.java @@ -26,7 +26,7 @@ import java.lang.annotation.*; /** - * 校验组注解,标记当前位置被激活的校验组 + * 校验组注解,标记当前位置被激活的校验组 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/In.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/In.java index 808f039b23..cf16de6f73 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/In.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/In.java @@ -33,7 +33,7 @@ * 字符串在数组中 * *

      - * 默认被校验对象是null时,通过校验 + * 默认被校验对象是null时,通过校验 *

      * * @author Kimi Liu diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/InEnum.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/InEnum.java index 1439f85940..dbc55bcbac 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/InEnum.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/InEnum.java @@ -30,10 +30,10 @@ import java.lang.annotation.*; /** - * 校验对象在枚举中,默认将对象与枚举名称匹配。 + * 校验对象在枚举中,默认将对象与枚举名称匹配 * *

      - * 默认被校验对象是null时,通过校验 + * 默认被校验对象是null时,通过校验 *

      * * @author Kimi Liu @@ -55,7 +55,7 @@ Class enumClass(); /** - * 枚举中的方法,将枚举方法的结果与被校验参数进行equals判断校验结果 + * 枚举中的方法,将枚举方法的结果与被校验参数进行equals判断校验结果 * * @return the string */ diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Inside.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Inside.java index b86cd5522f..5a72a4bd4e 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Inside.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Inside.java @@ -26,9 +26,9 @@ import java.lang.annotation.*; /** - * 标记注解,是否校验对象内部。 + * 标记注解,是否校验对象内部 *

      - * 在方法参数或对象类型或字段上可以使用,表示遇到校验器遇到该对象时,会尝试校验对象内部的所有字段 + * 在方法参数或对象类型或字段上可以使用,表示遇到校验器遇到该对象时,会尝试校验对象内部的所有字段 *

      * * @author Kimi Liu diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/IntRange.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/IntRange.java index a8dcfe0202..8aaa0a55e1 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/IntRange.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/IntRange.java @@ -32,7 +32,7 @@ * 判断数字在int范围内 * *

      - * 默认被校验对象是null时,通过校验 + * 默认被校验对象是null时,通过校验 *

      * * @author Kimi Liu diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Length.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Length.java index be2719f976..996e1db497 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Length.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Length.java @@ -32,7 +32,7 @@ * 字符串、数组、集合的长度校验 * *

      - * 默认被校验对象是null时,通过校验 + * 默认被校验对象是null时,通过校验 *

      * * @author Kimi Liu @@ -54,7 +54,7 @@ int min() default Integer.MIN_VALUE; /** - * 最大长度,大于等于 + * 最大长度,大于等于 * * @return the int */ @@ -62,9 +62,9 @@ int max() default Integer.MAX_VALUE; /** - * 如果长度为0,判断能否通过校验。 + * 如果长度为0,判断能否通过校验 * 默认为false - * true:表示长度为零,默认通过校验;false:表示长度为0,仍然要进行长度验证 + * true:表示长度为零,默认通过校验;false:表示长度为0,仍然要进行长度验证 * * @return the boolean */ diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Multi.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Multi.java index 0795c80d2d..ae43368697 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Multi.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Multi.java @@ -43,14 +43,14 @@ public @interface Multi { /** - * 校验器名称数组,优先使用校验器名称中的校验器,并忽略校验器类中的校验器 + * 校验器名称数组,优先使用校验器名称中的校验器,并忽略校验器类中的校验器 * * @return the array */ String[] value() default {}; /** - * 校验器类数组, 当校验器名称数组为空时,使用校验器类数组中的校验器 + * 校验器类数组, 当校验器名称数组为空时,使用校验器类数组中的校验器 * * @return the object */ diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/NotBlank.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/NotBlank.java index 44a1936767..c88a459f6e 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/NotBlank.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/NotBlank.java @@ -29,7 +29,7 @@ import java.lang.annotation.*; /** - * 字符串不为空,不为null校验 + * 字符串不为空,不为null校验 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/NotIn.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/NotIn.java index 5e01bd9d94..4b6f93aab9 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/NotIn.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/NotIn.java @@ -32,7 +32,7 @@ * 校验字符串不存在数组中 * *

      - * 默认被校验对象是null时,通过校验 + * 默认被校验对象是null时,通过校验 *

      * * @author Kimi Liu diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Reflect.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Reflect.java index 6b72a2520b..36856d621a 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Reflect.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Reflect.java @@ -29,10 +29,10 @@ import java.lang.annotation.*; /** - * 通过反射调用被校验参数,并判断反射方法的结果 + * 通过反射调用被校验参数,并判断反射方法的结果 * *

      - * 默认被校验对象是null时,通过校验 + * 默认被校验对象是null时,通过校验 *

      * * @author Kimi Liu @@ -60,7 +60,7 @@ String method(); /** - * 校验器名称数组,将会校验反射的执行结果 + * 校验器名称数组,将会校验反射的执行结果 * * @return the array */ diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Regex.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Regex.java index c30135ef23..35a11ed86e 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Regex.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Regex.java @@ -31,7 +31,7 @@ /** * 正则表达式校验 *

      - * 默认被校验对象是null时,通过校验 + * 默认被校验对象是null时,通过校验 *

      * * @author Kimi Liu @@ -48,9 +48,9 @@ String pattern() default ""; /** - * 如果长度为0,判断能否通过校验。 + * 如果长度为0,判断能否通过校验 * 默认为false - * true:表示长度为零,默认通过校验;false:表示长度为0,仍然要进行正则验证 + * true:表示长度为零,默认通过校验;false:表示长度为0,仍然要进行正则验证 * * @return the boolean */ diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/True.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/True.java index 9bead822d0..85ae92134d 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/True.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/True.java @@ -42,7 +42,7 @@ public @interface True { /** - * 当参数为null时,是否允许通过校验。true:校验通过, false:校验不通过 + * 当参数为null时,是否允许通过校验 true:校验通过, false:校验不通过 * * @return the string */ diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Valid.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Valid.java index 9bdc6d6260..263dc5ce5c 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Valid.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/Valid.java @@ -26,7 +26,7 @@ import java.lang.annotation.*; /** - * 标记注解,标明要被拦截的类或方法或者参数 + * 标记注解,标明要被拦截的类或方法或者参数 * * @author Kimi Liu * @version 5.2.2 diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/ValidEx.java b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/ValidEx.java index 6f855ea492..98e49756e4 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/annotation/ValidEx.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/annotation/ValidEx.java @@ -28,16 +28,16 @@ import java.lang.annotation.*; /** - * 校验异常注解,校验失败时将ValidateException替换为指定的异常并抛出. + * 校验异常注解,校验失败时将ValidateException替换为指定的异常并抛出. *

      - * 在被拦截方法的入参上使用,表明为全局校验异常. - * 在对象内部校验的字段上标记,表明为字段异常. - * 在校验器注解的定义上标记,表明为校验器异常. + * 在被拦截方法的入参上使用,表明为全局校验异常. + * 在对象内部校验的字段上标记,表明为字段异常. + * 在校验器注解的定义上标记,表明为校验器异常. * 校验异常说明: - * 当校验失败时,如果定义了全局校验异常,则抛出全局校验异常; - * 然后判断如果定义了字段异常,则抛出字段异常; - * 最后判断如果定义了校验器注解异常,则抛出校验器注解上定义的异常; - * 如果都没定义,则抛出{@link ValidateException} + * 当校验失败时,如果定义了全局校验异常,则抛出全局校验异常; + * 然后判断如果定义了字段异常,则抛出字段异常; + * 最后判断如果定义了校验器注解异常,则抛出校验器注解上定义的异常; + * 如果都没定义,则抛出{@link ValidateException} *

      * * @author Kimi Liu diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/strategy/EachStrategy.java b/bus-validate/src/main/java/org/aoju/bus/validate/strategy/EachStrategy.java index a00a97e185..55630c4707 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/strategy/EachStrategy.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/strategy/EachStrategy.java @@ -88,7 +88,7 @@ public boolean on(Object object, Each annotation, Context context) { } /** - * 快速执行多个校验器,一旦有一个校验不通过,则返回false + * 快速执行多个校验器,一旦有一个校验不通过,则返回false * * @param validators 校验器集合 * @param object 校验对象 diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/validators/Checker.java b/bus-validate/src/main/java/org/aoju/bus/validate/validators/Checker.java index 0c15a2bb9c..c7a9894b7c 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/validators/Checker.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/validators/Checker.java @@ -54,7 +54,7 @@ public class Checker { * @param validated 被校验对象 * @param property 校验器属性 * @return 校验结果 - * @throws ValidateException 如果校验环境的fastFailed设置为true, 则校验失败时立刻抛出该异常 + * @throws ValidateException 如果校验环境的fastFailed设置为true, 则校验失败时立刻抛出该异常 */ public Collector object(Validated validated, Property property) throws ValidateException { @@ -117,7 +117,7 @@ && hasInside(annotations)) { collector.collect(validated.access()); } } else { - Logger.debug("当前被校验的对象为null, 忽略校验对象内部字段: {}", validated); + Logger.debug("当前被校验的对象为null, 忽略校验对象内部字段: {}", validated); } } catch (IllegalAccessException e) { throw new InstrumentException("无法校验指定字段", e); diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/validators/Complex.java b/bus-validate/src/main/java/org/aoju/bus/validate/validators/Complex.java index 4045c396da..bcf859c491 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/validators/Complex.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/validators/Complex.java @@ -47,12 +47,12 @@ public interface Complex { } /** - * 根据校验器,创建相对立的一个校验器 + * 根据校验器,创建相对立的一个校验器 * * @param complex 校验器 * @param 校验对象泛型 * @param 校验器注解泛型 - * @return 新的校验器,永远与传入参数的校验器的校验结果相反 + * @return 新的校验器, 永远与传入参数的校验器的校验结果相反 */ static Complex not(Complex complex) { return (object, anno, context) -> !complex.on(object, anno, context); @@ -64,7 +64,7 @@ static Complex not(Complex complex) { * @param object 被校验的对象 * @param annotation 被校验对象的注解 * @param context 校验环境上下文 - * @return 校验结果,true:校验通过 + * @return 校验结果, true:校验通过 */ boolean on(T object, K annotation, Context context); diff --git a/bus-validate/src/main/java/org/aoju/bus/validate/validators/Validator.java b/bus-validate/src/main/java/org/aoju/bus/validate/validators/Validator.java index 5ec89aa429..6860414f01 100755 --- a/bus-validate/src/main/java/org/aoju/bus/validate/validators/Validator.java +++ b/bus-validate/src/main/java/org/aoju/bus/validate/validators/Validator.java @@ -36,11 +36,11 @@ public interface Validator { /** - * 根据校验器,创建相对立的一个校验器 + * 根据校验器,创建相对立的一个校验器 * * @param validator 校验器 * @param 校验对象泛型 - * @return 新的校验器,永远与传入参数的校验器的校验结果相反 + * @return 新的校验器, 永远与传入参数的校验器的校验结果相反 */ static Validator not(Validator validator) { return (object, context) -> !validator.on(object, context); @@ -51,7 +51,7 @@ static Validator not(Validator validator) { * * @param object 被校验的对象 * @param context 当前校验参数的上下文 - * @return 校验结果,true:校验通过 + * @return 校验结果, true:校验通过 */ boolean on(T object, Context context);