add methods

This commit is contained in:
Looly 2022-05-10 18:17:41 +08:00
parent 6b13c21393
commit 1fa3450b27
2 changed files with 72 additions and 71 deletions

View File

@ -8,6 +8,7 @@
### 🐣新特性 ### 🐣新特性
* 【core 】 BooleanUtil增加toBooleanObject方法issue#I56AG3@Gitee * 【core 】 BooleanUtil增加toBooleanObject方法issue#I56AG3@Gitee
* 【core 】 CharSequenceUtil增加startWithAnyIgnoreCase方法issue#2312@Github * 【core 】 CharSequenceUtil增加startWithAnyIgnoreCase方法issue#2312@Github
* 【system 】 JavaInfo增加版本issue#2310@Github
### 🐞Bug修复 ### 🐞Bug修复
* 【core 】 MapUtil.map对null友好且修复了测试用例中分组问题pr#614@Gitee * 【core 】 MapUtil.map对null友好且修复了测试用例中分组问题pr#614@Gitee
* 【core 】 修复BeanUtil.beanToMap中properties为null的空指针问题issue#2303@Github * 【core 】 修复BeanUtil.beanToMap中properties为null的空指针问题issue#2303@Github

View File

@ -39,12 +39,12 @@ public class JavaInfo implements Serializable {
/** /**
* 取得当前Java impl.的版本取自系统属性<code>java.version</code> * 取得当前Java impl.的版本取自系统属性{@code java.version}
* *
* <p> * <p>
* 例如Sun JDK 1.4.2<code>"1.4.2"</code> * 例如Sun JDK 1.4.2{@code "1.4.2"}
* *
* @return 属性值如果不能取得因为Java安全限制或值不存在则返回<code>null</code> * @return 属性值如果不能取得因为Java安全限制或值不存在则返回{@code null}
* @since Java 1.1 * @since Java 1.1
*/ */
public final String getVersion() { public final String getVersion() {
@ -52,35 +52,35 @@ public class JavaInfo implements Serializable {
} }
/** /**
* 取得当前Java impl.的版本取自系统属性<code>java.version</code> * 取得当前Java impl.的版本取自系统属性{@code java.version}
* *
* <p> * <p>
* 例如 * 例如
* *
* <ul> * <ul>
* <li>JDK 1.2<code>1.2f</code></li> * <li>JDK 1.2{@code 1.2f}</li>
* <li>JDK 1.3.1<code>1.31f</code></li> * <li>JDK 1.3.1{@code 1.31f}</li>
* </ul> * </ul>
* *
* @return 属性值如果不能取得因为Java安全限制或值不存在则返回<code>0</code> * @return 属性值如果不能取得因为Java安全限制或值不存在则返回{@code 0}
*/ */
public final float getVersionFloat() { public final float getVersionFloat() {
return JAVA_VERSION_FLOAT; return JAVA_VERSION_FLOAT;
} }
/** /**
* 取得当前Java impl.的版本取自系统属性<code>java.version</code>java10及其之后的版本返回值为4位 * 取得当前Java impl.的版本取自系统属性{@code java.version}java10及其之后的版本返回值为4位
* *
* <p> * <p>
* 例如 * 例如
* *
* <ul> * <ul>
* <li>JDK 1.2<code>120</code></li> * <li>JDK 1.2{@code 120}</li>
* <li>JDK 1.3.1<code>131</code></li> * <li>JDK 1.3.1{@code 131}</li>
* <li>JDK 11.0.2<code>1102</code></li> * <li>JDK 11.0.2{@code 1102}</li>
* </ul> * </ul>
* *
* @return 属性值如果不能取得因为Java安全限制或值不存在则返回<code>0</code> * @return 属性值如果不能取得因为Java安全限制或值不存在则返回{@code 0}
* @since Java 1.1 * @since Java 1.1
*/ */
public final int getVersionInt() { public final int getVersionInt() {
@ -88,9 +88,9 @@ public class JavaInfo implements Serializable {
} }
/** /**
* 取得当前Java impl.的版本的<code>float</code> * 取得当前Java impl.的版本的{@code float}
* *
* @return Java版本的<code>float</code>值或<code>0</code> * @return Java版本的<code>float</code>值或{@code 0}
*/ */
private float getJavaVersionAsFloat() { private float getJavaVersionAsFloat() {
if (JAVA_VERSION == null) { if (JAVA_VERSION == null) {
@ -105,18 +105,18 @@ public class JavaInfo implements Serializable {
} }
/** /**
* 取得当前Java impl.的版本的<code>int</code> * 取得当前Java impl.的版本的{@code int}
* *
* @return Java版本的<code>int</code>值或<code>0</code> * @return Java版本的<code>int</code>值或{@code 0}
*/ */
private int getJavaVersionAsInt() { private int getJavaVersionAsInt() {
if (JAVA_VERSION == null) { if (JAVA_VERSION == null) {
return 0; 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, ""); String result = ArrayUtil.join(split, "");
//保证java10及其之后的版本返回的值为4位 //保证java10及其之后的版本返回的值为4位
@ -128,12 +128,12 @@ public class JavaInfo implements Serializable {
} }
/** /**
* 取得当前Java impl.的厂商取自系统属性<code>java.vendor</code> * 取得当前Java impl.的厂商取自系统属性{@code java.vendor}
* *
* <p> * <p>
* 例如Sun JDK 1.4.2<code>"Sun Microsystems Inc."</code> * 例如Sun JDK 1.4.2{@code "Sun Microsystems Inc."}
* *
* @return 属性值如果不能取得因为Java安全限制或值不存在则返回<code>null</code> * @return 属性值如果不能取得因为Java安全限制或值不存在则返回{@code null}
* @since Java 1.1 * @since Java 1.1
*/ */
public final String getVendor() { public final String getVendor() {
@ -141,12 +141,12 @@ public class JavaInfo implements Serializable {
} }
/** /**
* 取得当前Java impl.的厂商网站的URL取自系统属性<code>java.vendor.url</code> * 取得当前Java impl.的厂商网站的URL取自系统属性{@code java.vendor.url}
* *
* <p> * <p>
* 例如Sun JDK 1.4.2<code>"http://java.sun.com/"</code> * 例如Sun JDK 1.4.2{@code "<a href="http://java.sun.com/">http://java.sun.com/</a>"}
* *
* @return 属性值如果不能取得因为Java安全限制或值不存在则返回<code>null</code> * @return 属性值如果不能取得因为Java安全限制或值不存在则返回{@code null}
* @since Java 1.1 * @since Java 1.1
*/ */
public final String getVendorURL() { public final String getVendorURL() {
@ -157,9 +157,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为1.1则返回<code>true</code> * @return 如果当前Java版本为1.1则返回{@code true}
*/ */
public final boolean isJava1_1() { public final boolean isJava1_1() {
return IS_JAVA_1_1; return IS_JAVA_1_1;
@ -169,9 +169,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为1.2则返回<code>true</code> * @return 如果当前Java版本为1.2则返回{@code true}
*/ */
public final boolean isJava1_2() { public final boolean isJava1_2() {
return IS_JAVA_1_2; return IS_JAVA_1_2;
@ -181,9 +181,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为1.3则返回<code>true</code> * @return 如果当前Java版本为1.3则返回{@code true}
*/ */
public final boolean isJava1_3() { public final boolean isJava1_3() {
return IS_JAVA_1_3; return IS_JAVA_1_3;
@ -193,9 +193,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为1.4则返回<code>true</code> * @return 如果当前Java版本为1.4则返回{@code true}
*/ */
public final boolean isJava1_4() { public final boolean isJava1_4() {
return IS_JAVA_1_4; return IS_JAVA_1_4;
@ -205,9 +205,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为1.5则返回<code>true</code> * @return 如果当前Java版本为1.5则返回{@code true}
*/ */
public final boolean isJava1_5() { public final boolean isJava1_5() {
return IS_JAVA_1_5; return IS_JAVA_1_5;
@ -217,9 +217,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为1.6则返回<code>true</code> * @return 如果当前Java版本为1.6则返回{@code true}
*/ */
public final boolean isJava1_6() { public final boolean isJava1_6() {
return IS_JAVA_1_6; return IS_JAVA_1_6;
@ -229,9 +229,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为1.7则返回<code>true</code> * @return 如果当前Java版本为1.7则返回{@code true}
*/ */
public final boolean isJava1_7() { public final boolean isJava1_7() {
return IS_JAVA_1_7; return IS_JAVA_1_7;
@ -241,9 +241,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为1.8则返回<code>true</code> * @return 如果当前Java版本为1.8则返回{@code true}
*/ */
public final boolean isJava1_8() { public final boolean isJava1_8() {
return IS_JAVA_1_8; return IS_JAVA_1_8;
@ -253,9 +253,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为9则返回<code>true</code> * @return 如果当前Java版本为9则返回{@code true}
*/ */
public final boolean isJava9() { public final boolean isJava9() {
return IS_JAVA_9; return IS_JAVA_9;
@ -265,9 +265,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为10则返回<code>true</code> * @return 如果当前Java版本为10则返回{@code true}
*/ */
public final boolean isJava10() { public final boolean isJava10() {
return IS_JAVA_10; return IS_JAVA_10;
@ -277,9 +277,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为11则返回<code>true</code> * @return 如果当前Java版本为11则返回{@code true}
*/ */
public final boolean isJava11() { public final boolean isJava11() {
return IS_JAVA_11; return IS_JAVA_11;
@ -289,9 +289,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为12则返回<code>true</code> * @return 如果当前Java版本为12则返回{@code true}
*/ */
public final boolean isJava12() { public final boolean isJava12() {
return IS_JAVA_12; return IS_JAVA_12;
@ -301,9 +301,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为13则返回<code>true</code> * @return 如果当前Java版本为13则返回{@code true}
*/ */
public final boolean isJava13() { public final boolean isJava13() {
return IS_JAVA_13; return IS_JAVA_13;
@ -314,9 +314,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为14则返回<code>true</code> * @return 如果当前Java版本为14则返回{@code true}
*/ */
public final boolean isJava14() { public final boolean isJava14() {
return IS_JAVA_14; return IS_JAVA_14;
@ -326,9 +326,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为15则返回<code>true</code> * @return 如果当前Java版本为15则返回{@code true}
*/ */
public final boolean isJava15() { public final boolean isJava15() {
return IS_JAVA_15; return IS_JAVA_15;
@ -338,9 +338,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为16则返回<code>true</code> * @return 如果当前Java版本为16则返回{@code true}
*/ */
public final boolean isJava16() { public final boolean isJava16() {
return IS_JAVA_16; return IS_JAVA_16;
@ -350,9 +350,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为17则返回<code>true</code> * @return 如果当前Java版本为17则返回{@code true}
*/ */
public final boolean isJava17() { public final boolean isJava17() {
return IS_JAVA_17; return IS_JAVA_17;
@ -362,9 +362,9 @@ public class JavaInfo implements Serializable {
* 判断当前Java的版本 * 判断当前Java的版本
* *
* <p> * <p>
* 如果不能取得系统属性<code>java.version</code>因为Java安全限制则总是返回 <code>false</code> * 如果不能取得系统属性{@code java.version}因为Java安全限制则总是返回 {@code false}
* *
* @return 如果当前Java版本为18则返回<code>true</code> * @return 如果当前Java版本为18则返回{@code true}
*/ */
public final boolean isJava18() { public final boolean isJava18() {
return IS_JAVA_18; return IS_JAVA_18;
@ -374,9 +374,9 @@ public class JavaInfo implements Serializable {
* 匹配当前Java的版本 * 匹配当前Java的版本
* *
* @param versionPrefix Java版本前缀 * @param versionPrefix Java版本前缀
* @return 如果版本匹配则返回<code>true</code> * @return 如果版本匹配则返回{@code true}
*/ */
private boolean getJavaVersionMatches(String versionPrefix) { private boolean getJavaVersionMatches(final String versionPrefix) {
if (JAVA_VERSION == null) { if (JAVA_VERSION == null) {
return false; return false;
} }
@ -392,14 +392,14 @@ public class JavaInfo implements Serializable {
* *
* *
* <ul> * <ul>
* <li>测试JDK 1.2<code>isJavaVersionAtLeast(1.2f)</code></li> * <li>测试JDK 1.2{@code isJavaVersionAtLeast(1.2f)}</li>
* <li>测试JDK 1.2.1<code>isJavaVersionAtLeast(1.31f)</code></li> * <li>测试JDK 1.2.1{@code isJavaVersionAtLeast(1.31f)}</li>
* </ul> * </ul>
* *
* @param requiredVersion 需要的版本 * @param requiredVersion 需要的版本
* @return 如果当前Java版本大于或等于指定的版本则返回<code>true</code> * @return 如果当前Java版本大于或等于指定的版本则返回{@code true}
*/ */
public final boolean isJavaVersionAtLeast(float requiredVersion) { public final boolean isJavaVersionAtLeast(final float requiredVersion) {
return getVersionFloat() >= requiredVersion; return getVersionFloat() >= requiredVersion;
} }
@ -411,14 +411,14 @@ public class JavaInfo implements Serializable {
* *
* *
* <ul> * <ul>
* <li>测试JDK 1.2<code>isJavaVersionAtLeast(120)</code></li> * <li>测试JDK 1.2{@code isJavaVersionAtLeast(120)}</li>
* <li>测试JDK 1.2.1<code>isJavaVersionAtLeast(131)</code></li> * <li>测试JDK 1.2.1{@code isJavaVersionAtLeast(131)}</li>
* </ul> * </ul>
* *
* @param requiredVersion 需要的版本 * @param requiredVersion 需要的版本
* @return 如果当前Java版本大于或等于指定的版本则返回<code>true</code> * @return 如果当前Java版本大于或等于指定的版本则返回{@code true}
*/ */
public final boolean isJavaVersionAtLeast(int requiredVersion) { public final boolean isJavaVersionAtLeast(final int requiredVersion) {
return getVersionInt() >= requiredVersion; return getVersionInt() >= requiredVersion;
} }
@ -429,7 +429,7 @@ public class JavaInfo implements Serializable {
*/ */
@Override @Override
public final String toString() { public final String toString() {
StringBuilder builder = new StringBuilder(); final StringBuilder builder = new StringBuilder();
SystemUtil.append(builder, "Java Version: ", getVersion()); SystemUtil.append(builder, "Java Version: ", getVersion());
SystemUtil.append(builder, "Java Vendor: ", getVendor()); SystemUtil.append(builder, "Java Vendor: ", getVendor());