- * 1、src和dest都为目录,则讲src下所有文件目录拷贝到dest下 + * 1、src和dest都为目录,则将src下所有文件目录拷贝到dest下 * 2、src和dest都为文件,直接复制,名字为dest * 3、src为文件,dest为目录,将src拷贝到dest目录下 *@@ -1117,7 +1117,7 @@ public class FileUtil extends PathUtil { * 情况如下: * *
- * 1、src和dest都为目录,则讲src下所有文件(包括子目录)拷贝到dest下 + * 1、src和dest都为目录,则将src下所有文件(包括子目录)拷贝到dest下 * 2、src和dest都为文件,直接复制,名字为dest * 3、src为文件,dest为目录,将src拷贝到dest目录下 *diff --git a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java index 23fb8e604..cc9088143 100755 --- a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java @@ -6,6 +6,7 @@ import cn.hutool.core.lang.Editor; import cn.hutool.core.lang.Filter; import cn.hutool.core.lang.Pair; import cn.hutool.core.lang.TypeReference; +import cn.hutool.core.stream.CollectorUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; @@ -27,7 +28,6 @@ import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; import java.util.function.BiFunction; /** @@ -708,7 +708,7 @@ public class MapUtil { if (null == map || null == biFunction) { return MapUtil.newHashMap(); } - return map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, m -> biFunction.apply(m.getKey(), m.getValue()))); + return map.entrySet().stream().collect(CollectorUtil.toMap(Map.Entry::getKey, m -> biFunction.apply(m.getKey(), m.getValue()),(l,r)->l)); } /** @@ -1432,7 +1432,7 @@ public class MapUtil { */ public static
+ * 对于用户传入参数会做必要检查,包括: + * + *
+ * 1、忽略多余的参数 + * 2、参数不够补齐默认值 + * 3、传入参数为null,但是目标参数类型为原始类型,做转换 + *+ * + * @param
java.version
)。
+ * 取得当前Java impl.的版本(取自系统属性:{@code java.version})。
*
*
- * 例如Sun JDK 1.4.2:"1.4.2"
+ * 例如Sun JDK 1.4.2:{@code "1.4.2"}
*
- * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null
。
+ * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回{@code null}。
* @since Java 1.1
*/
public final String getVersion() {
@@ -45,35 +52,35 @@ public class JavaInfo implements Serializable {
}
/**
- * 取得当前Java impl.的版本(取自系统属性:java.version
)。
+ * 取得当前Java impl.的版本(取自系统属性:{@code java.version})。
*
*
* 例如: * *
1.2f
。1.31f
0
。
+ * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回{@code 0}。
*/
public final float getVersionFloat() {
return JAVA_VERSION_FLOAT;
}
/**
- * 取得当前Java impl.的版本(取自系统属性:java.version
),java10及其之后的版本返回值为4位。
+ * 取得当前Java impl.的版本(取自系统属性:{@code java.version}),java10及其之后的版本返回值为4位。
*
* * 例如: * *
120
。131
1102
0
。
+ * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回{@code 0}。
* @since Java 1.1
*/
public final int getVersionInt() {
@@ -81,9 +88,9 @@ public class JavaInfo implements Serializable {
}
/**
- * 取得当前Java impl.的版本的float
值。
+ * 取得当前Java impl.的版本的{@code float}值。
*
- * @return Java版本的float
值或0
+ * @return Java版本的float
值或{@code 0}
*/
private float getJavaVersionAsFloat() {
if (JAVA_VERSION == null) {
@@ -98,18 +105,18 @@ public class JavaInfo implements Serializable {
}
/**
- * 取得当前Java impl.的版本的int
值。
+ * 取得当前Java impl.的版本的{@code int}值。
*
- * @return Java版本的int
值或0
+ * @return Java版本的int
值或{@code 0}
*/
private int getJavaVersionAsInt() {
if (JAVA_VERSION == null) {
return 0;
}
- String javaVersion = ReUtil.get("^[0-9]{1,2}(\\.[0-9]{1,2}){0,2}", JAVA_VERSION, 0);
+ final String javaVersion = ReUtil.get("^[0-9]{1,2}(\\.[0-9]{1,2}){0,2}", JAVA_VERSION, 0);
- String[] split = javaVersion.split("\\.");
+ final String[] split = javaVersion.split("\\.");
String result = ArrayUtil.join(split, "");
//保证java10及其之后的版本返回的值为4位
@@ -121,12 +128,12 @@ public class JavaInfo implements Serializable {
}
/**
- * 取得当前Java impl.的厂商(取自系统属性:java.vendor
)。
+ * 取得当前Java impl.的厂商(取自系统属性:{@code java.vendor})。
*
*
- * 例如Sun JDK 1.4.2:"Sun Microsystems Inc."
+ * 例如Sun JDK 1.4.2:{@code "Sun Microsystems Inc."}
*
- * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null
。
+ * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回{@code null}。
* @since Java 1.1
*/
public final String getVendor() {
@@ -134,12 +141,12 @@ public class JavaInfo implements Serializable {
}
/**
- * 取得当前Java impl.的厂商网站的URL(取自系统属性:java.vendor.url
)。
+ * 取得当前Java impl.的厂商网站的URL(取自系统属性:{@code java.vendor.url})。
*
*
- * 例如Sun JDK 1.4.2:"http://java.sun.com/"
+ * 例如Sun JDK 1.4.2:{@code "http://java.sun.com/"}
*
- * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回null
。
+ * @return 属性值,如果不能取得(因为Java安全限制)或值不存在,则返回{@code null}。
* @since Java 1.1
*/
public final String getVendorURL() {
@@ -150,9 +157,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为1.1,则返回true
+ * @return 如果当前Java版本为1.1,则返回{@code true}
*/
public final boolean isJava1_1() {
return IS_JAVA_1_1;
@@ -162,9 +169,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为1.2,则返回true
+ * @return 如果当前Java版本为1.2,则返回{@code true}
*/
public final boolean isJava1_2() {
return IS_JAVA_1_2;
@@ -174,9 +181,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为1.3,则返回true
+ * @return 如果当前Java版本为1.3,则返回{@code true}
*/
public final boolean isJava1_3() {
return IS_JAVA_1_3;
@@ -186,9 +193,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为1.4,则返回true
+ * @return 如果当前Java版本为1.4,则返回{@code true}
*/
public final boolean isJava1_4() {
return IS_JAVA_1_4;
@@ -198,9 +205,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为1.5,则返回true
+ * @return 如果当前Java版本为1.5,则返回{@code true}
*/
public final boolean isJava1_5() {
return IS_JAVA_1_5;
@@ -210,9 +217,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为1.6,则返回true
+ * @return 如果当前Java版本为1.6,则返回{@code true}
*/
public final boolean isJava1_6() {
return IS_JAVA_1_6;
@@ -222,9 +229,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为1.7,则返回true
+ * @return 如果当前Java版本为1.7,则返回{@code true}
*/
public final boolean isJava1_7() {
return IS_JAVA_1_7;
@@ -234,9 +241,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为1.8,则返回true
+ * @return 如果当前Java版本为1.8,则返回{@code true}
*/
public final boolean isJava1_8() {
return IS_JAVA_1_8;
@@ -246,9 +253,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为9,则返回true
+ * @return 如果当前Java版本为9,则返回{@code true}
*/
public final boolean isJava9() {
return IS_JAVA_9;
@@ -258,9 +265,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为10,则返回true
+ * @return 如果当前Java版本为10,则返回{@code true}
*/
public final boolean isJava10() {
return IS_JAVA_10;
@@ -270,9 +277,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为11,则返回true
+ * @return 如果当前Java版本为11,则返回{@code true}
*/
public final boolean isJava11() {
return IS_JAVA_11;
@@ -282,21 +289,94 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本。
*
*
- * 如果不能取得系统属性java.version
(因为Java安全限制),则总是返回 false
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
*
- * @return 如果当前Java版本为12,则返回true
+ * @return 如果当前Java版本为12,则返回{@code true}
*/
public final boolean isJava12() {
return IS_JAVA_12;
}
+ /**
+ * 判断当前Java的版本。
+ *
+ *
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} + * + * @return 如果当前Java版本为13,则返回{@code true} + */ + public final boolean isJava13() { + return IS_JAVA_13; + } + + + /** + * 判断当前Java的版本。 + * + *
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} + * + * @return 如果当前Java版本为14,则返回{@code true} + */ + public final boolean isJava14() { + return IS_JAVA_14; + } + + /** + * 判断当前Java的版本。 + * + *
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} + * + * @return 如果当前Java版本为15,则返回{@code true} + */ + public final boolean isJava15() { + return IS_JAVA_15; + } + + /** + * 判断当前Java的版本。 + * + *
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} + * + * @return 如果当前Java版本为16,则返回{@code true} + */ + public final boolean isJava16() { + return IS_JAVA_16; + } + + /** + * 判断当前Java的版本。 + * + *
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false} + * + * @return 如果当前Java版本为17,则返回{@code true} + */ + public final boolean isJava17() { + return IS_JAVA_17; + } + + /** + * 判断当前Java的版本。 + * + *
+ * 如果不能取得系统属性{@code java.version}(因为Java安全限制),则总是返回 {@code false}
+ *
+ * @return 如果当前Java版本为18,则返回{@code true}
+ */
+ public final boolean isJava18() {
+ return IS_JAVA_18;
+ }
+
/**
* 匹配当前Java的版本。
*
* @param versionPrefix Java版本前缀
- * @return 如果版本匹配,则返回true
+ * @return 如果版本匹配,则返回{@code true}
*/
- private boolean getJavaVersionMatches(String versionPrefix) {
+ private boolean getJavaVersionMatches(final String versionPrefix) {
if (JAVA_VERSION == null) {
return false;
}
@@ -312,14 +392,14 @@ public class JavaInfo implements Serializable {
*
*
*
isJavaVersionAtLeast(1.2f)
isJavaVersionAtLeast(1.31f)
true
+ * @return 如果当前Java版本大于或等于指定的版本,则返回{@code true}
*/
- public final boolean isJavaVersionAtLeast(float requiredVersion) {
+ public final boolean isJavaVersionAtLeast(final float requiredVersion) {
return getVersionFloat() >= requiredVersion;
}
@@ -331,14 +411,14 @@ public class JavaInfo implements Serializable {
*
*
* isJavaVersionAtLeast(120)
isJavaVersionAtLeast(131)
true
+ * @return 如果当前Java版本大于或等于指定的版本,则返回{@code true}
*/
- public final boolean isJavaVersionAtLeast(int requiredVersion) {
+ public final boolean isJavaVersionAtLeast(final int requiredVersion) {
return getVersionInt() >= requiredVersion;
}
@@ -349,7 +429,7 @@ public class JavaInfo implements Serializable {
*/
@Override
public final String toString() {
- StringBuilder builder = new StringBuilder();
+ final StringBuilder builder = new StringBuilder();
SystemUtil.append(builder, "Java Version: ", getVersion());
SystemUtil.append(builder, "Java Vendor: ", getVendor());
diff --git a/pom.xml b/pom.xml
index d874dbd2e..ba4a3b432 100755
--- a/pom.xml
+++ b/pom.xml
@@ -8,7 +8,7 @@