修改为valueOf的方式获取值, 避免产生新的实例

This commit is contained in:
xy
2021-05-24 11:46:47 +08:00
parent 953ba965aa
commit ce0879c5b5

View File

@@ -94,9 +94,7 @@ public class SaTokenConfigFactory {
Object valueConvert = getObjectByClass(value, field.getType()); Object valueConvert = getObjectByClass(value, field.getType());
field.setAccessible(true); field.setAccessible(true);
field.set(obj, valueConvert); field.set(obj, valueConvert);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException | IllegalAccessException e) {
throw new RuntimeException("属性赋值出错:" + field.getName(), e);
} catch (IllegalAccessException e) {
throw new RuntimeException("属性赋值出错:" + field.getName(), e); throw new RuntimeException("属性赋值出错:" + field.getName(), e);
} }
} }
@@ -112,23 +110,21 @@ public class SaTokenConfigFactory {
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private static <T> T getObjectByClass(String str, Class<T> cs) { private static <T> T getObjectByClass(String str, Class<T> cs) {
Object value = null; Object value;
if (str == null) { if (cs.equals(String.class)) {
value = null;
} else if (cs.equals(String.class)) {
value = str; value = str;
} else if (cs.equals(int.class) || cs.equals(Integer.class)) { } else if (cs.equals(int.class) || cs.equals(Integer.class)) {
value = new Integer(str); value = Integer.valueOf(str);
} else if (cs.equals(long.class) || cs.equals(Long.class)) { } else if (cs.equals(long.class) || cs.equals(Long.class)) {
value = new Long(str); value = Long.valueOf(str);
} else if (cs.equals(short.class) || cs.equals(Short.class)) { } else if (cs.equals(short.class) || cs.equals(Short.class)) {
value = new Short(str); value = Short.valueOf(str);
} else if (cs.equals(float.class) || cs.equals(Float.class)) { } else if (cs.equals(float.class) || cs.equals(Float.class)) {
value = new Float(str); value = Float.valueOf(str);
} else if (cs.equals(double.class) || cs.equals(Double.class)) { } else if (cs.equals(double.class) || cs.equals(Double.class)) {
value = new Double(str); value = Double.valueOf(str);
} else if (cs.equals(boolean.class) || cs.equals(Boolean.class)) { } else if (cs.equals(boolean.class) || cs.equals(Boolean.class)) {
value = new Boolean(str); value = Boolean.valueOf(str);
} else { } else {
throw new RuntimeException("未能将值:" + str + ",转换类型为:" + cs, null); throw new RuntimeException("未能将值:" + str + ",转换类型为:" + cs, null);
} }