From af0e0a110e7187bf008655f7510199a0c0b25ec4 Mon Sep 17 00:00:00 2001 From: Nymph2333 <498092988@qq.com> Date: 星期一, 10 四月 2023 14:27:40 +0800 Subject: [PATCH] newInstance() 已弃用,使用clazz.getDeclaredConstructor().newInstance() This method propagates any exception thrown by the nullary constructor, including a checked exception. Use of this method effectively bypasses the compile-time exception checking that would otherwise be performed by the compiler. The Constructor.newInstance method avoids this problem by wrapping any exception thrown by the constructor in a (checked) InvocationTargetException. The call clazz.newInstance() can be replaced by clazz.getDeclaredConstructor().newInstance() The latter sequence of calls is inferred to be able to throw the additional exception types InvocationTargetException and NoSuchMethodException. Both of these exception types are subclasses of ReflectiveOperationException. --- ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java | 115 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 58 insertions(+), 57 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java index 9dd076d..50d2be0 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java @@ -7,10 +7,11 @@ import java.text.NumberFormat; import java.util.Set; import com.ruoyi.common.utils.StringUtils; +import org.apache.commons.lang3.ArrayUtils; /** * 类型转换器 - * + * * @author ruoyi */ public class Convert @@ -19,7 +20,7 @@ * 转换为字符串<br> * 如果给定的值为null,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -41,7 +42,7 @@ * 转换为字符串<br> * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -54,7 +55,7 @@ * 转换为字符<br> * 如果给定的值为null,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -78,7 +79,7 @@ * 转换为字符<br> * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -91,7 +92,7 @@ * 转换为byte<br> * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -129,7 +130,7 @@ * 转换为byte<br> * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -142,7 +143,7 @@ * 转换为Short<br> * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -180,7 +181,7 @@ * 转换为Short<br> * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -193,7 +194,7 @@ * 转换为Number<br> * 如果给定的值为空,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -227,7 +228,7 @@ * 转换为Number<br> * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -240,7 +241,7 @@ * 转换为int<br> * 如果给定的值为空,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -278,7 +279,7 @@ * 转换为int<br> * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -289,7 +290,7 @@ /** * 转换为Integer数组<br> - * + * * @param str 被转换的值 * @return 结果 */ @@ -300,7 +301,7 @@ /** * 转换为Long数组<br> - * + * * @param str 被转换的值 * @return 结果 */ @@ -311,7 +312,7 @@ /** * 转换为Integer数组<br> - * + * * @param split 分隔符 * @param split 被转换的值 * @return 结果 @@ -334,7 +335,7 @@ /** * 转换为Long数组<br> - * + * * @param split 分隔符 * @param str 被转换的值 * @return 结果 @@ -357,7 +358,7 @@ /** * 转换为String数组<br> - * + * * @param str 被转换的值 * @return 结果 */ @@ -368,7 +369,7 @@ /** * 转换为String数组<br> - * + * * @param split 分隔符 * @param split 被转换的值 * @return 结果 @@ -382,7 +383,7 @@ * 转换为long<br> * 如果给定的值为空,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -421,7 +422,7 @@ * 转换为long<br> * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -434,7 +435,7 @@ * 转换为double<br> * 如果给定的值为空,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -473,7 +474,7 @@ * 转换为double<br> * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -486,7 +487,7 @@ * 转换为Float<br> * 如果给定的值为空,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -524,7 +525,7 @@ * 转换为Float<br> * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -537,7 +538,7 @@ * 转换为boolean<br> * String支持的值为:true、false、yes、ok、no,1,0 如果给定的值为空,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -561,17 +562,12 @@ switch (valueStr) { case "true": - return true; - case "false": - return false; case "yes": - return true; case "ok": - return true; - case "no": - return false; case "1": return true; + case "false": + case "no": case "0": return false; default: @@ -583,7 +579,7 @@ * 转换为boolean<br> * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -595,7 +591,7 @@ /** * 转换为Enum对象<br> * 如果给定的值为空,或者转换失败,返回默认值<br> - * + * * @param clazz Enum的Class * @param value 值 * @param defaultValue 默认值 @@ -631,7 +627,7 @@ /** * 转换为Enum对象<br> * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br> - * + * * @param clazz Enum的Class * @param value 值 * @return Enum @@ -645,7 +641,7 @@ * 转换为BigInteger<br> * 如果给定的值为空,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -683,7 +679,7 @@ * 转换为BigInteger<br> * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -696,7 +692,7 @@ * 转换为BigDecimal<br> * 如果给定的值为空,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @param defaultValue 转换错误时的默认值 * @return 结果 @@ -717,7 +713,7 @@ } if (value instanceof Double) { - return new BigDecimal((Double) value); + return BigDecimal.valueOf((Double) value); } if (value instanceof Integer) { @@ -742,7 +738,7 @@ * 转换为BigDecimal<br> * 如果给定的值为空,或者转换失败,返回默认值<br> * 转换失败不会报错 - * + * * @param value 被转换的值 * @return 结果 */ @@ -754,7 +750,7 @@ /** * 将对象转为字符串<br> * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 - * + * * @param obj 对象 * @return 字符串 */ @@ -766,7 +762,7 @@ /** * 将对象转为字符串<br> * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 - * + * * @param obj 对象 * @param charsetName 字符集 * @return 字符串 @@ -779,7 +775,7 @@ /** * 将对象转为字符串<br> * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 - * + * * @param obj 对象 * @param charset 字符集 * @return 字符串 @@ -795,9 +791,14 @@ { return (String) obj; } - else if (obj instanceof byte[] || obj instanceof Byte[]) + else if (obj instanceof byte[]) { - return str((Byte[]) obj, charset); + return str((byte[]) obj, charset); + } + else if (obj instanceof Byte[]) + { + byte[] bytes = ArrayUtils.toPrimitive((Byte[]) obj); + return str(bytes, charset); } else if (obj instanceof ByteBuffer) { @@ -808,7 +809,7 @@ /** * 将byte数组转为字符串 - * + * * @param bytes byte数组 * @param charset 字符集 * @return 字符串 @@ -820,7 +821,7 @@ /** * 解码字节码 - * + * * @param data 字符串 * @param charset 字符集,如果此字段为空,则解码的结果取决于平台 * @return 解码后的字符串 @@ -841,7 +842,7 @@ /** * 将编码的byteBuffer数据转换为字符串 - * + * * @param data 数据 * @param charset 字符集,如果为空使用当前系统字符集 * @return 字符串 @@ -858,7 +859,7 @@ /** * 将编码的byteBuffer数据转换为字符串 - * + * * @param data 数据 * @param charset 字符集,如果为空使用当前系统字符集 * @return 字符串 @@ -875,7 +876,7 @@ // ----------------------------------------------------------------------- 全角半角转换 /** * 半角转全角 - * + * * @param input String. * @return 全角字符串. */ @@ -886,14 +887,14 @@ /** * 半角转全角 - * + * * @param input String * @param notConvertSet 不替换的字符集合 * @return 全角字符串. */ public static String toSBC(String input, Set<Character> notConvertSet) { - char c[] = input.toCharArray(); + char[] c = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (null != notConvertSet && notConvertSet.contains(c[i])) @@ -917,7 +918,7 @@ /** * 全角转半角 - * + * * @param input String. * @return 半角字符串 */ @@ -928,14 +929,14 @@ /** * 替换全角为半角 - * + * * @param text 文本 * @param notConvertSet 不替换的字符集合 * @return 替换后的字符 */ public static String toDBC(String text, Set<Character> notConvertSet) { - char c[] = text.toCharArray(); + char[] c = text.toCharArray(); for (int i = 0; i < c.length; i++) { if (null != notConvertSet && notConvertSet.contains(c[i])) @@ -960,7 +961,7 @@ /** * 数字金额大写转换 先写个完整的然后将如零拾替换成零 - * + * * @param n 数字 * @return 中文大写数字 */ -- Gitblit v1.9.2