mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
fix code
This commit is contained in:
parent
29255272b5
commit
663be40590
@ -1,8 +1,8 @@
|
|||||||
package cn.hutool.core.compiler;
|
package cn.hutool.core.compiler;
|
||||||
|
|
||||||
import cn.hutool.core.io.FileUtil;
|
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.compress.ZipUtil;
|
import cn.hutool.core.compress.ZipUtil;
|
||||||
|
import cn.hutool.core.io.FileUtil;
|
||||||
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ public class JavaSourceCompilerTest {
|
|||||||
// .addLibrary(FileUtil.file("D:\\m2_repo\\cn\\hutool\\hutool-all\\5.5.7\\hutool-all-5.5.7.jar"))
|
// .addLibrary(FileUtil.file("D:\\m2_repo\\cn\\hutool\\hutool-all\\5.5.7\\hutool-all-5.5.7.jar"))
|
||||||
.compile();
|
.compile();
|
||||||
final Class<?> clazz = classLoader.loadClass("c.C");
|
final Class<?> clazz = classLoader.loadClass("c.C");
|
||||||
final Object obj = ReflectUtil.newInstance(clazz);
|
final Object obj = ConstructorUtil.newInstance(clazz);
|
||||||
Assert.assertTrue(String.valueOf(obj).startsWith("c.C@"));
|
Assert.assertTrue(String.valueOf(obj).startsWith("c.C@"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,39 @@
|
|||||||
|
package cn.hutool.core.reflect;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.Week;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ConstructorUtilTest {
|
||||||
|
@Test
|
||||||
|
public void noneStaticInnerClassTest() {
|
||||||
|
final ReflectUtilTest.NoneStaticClass testAClass = ConstructorUtil.newInstanceIfPossible(ReflectUtilTest.NoneStaticClass.class);
|
||||||
|
Assert.assertNotNull(testAClass);
|
||||||
|
Assert.assertEquals(2, testAClass.getA());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void newInstanceIfPossibleTest(){
|
||||||
|
//noinspection ConstantConditions
|
||||||
|
final int intValue = ConstructorUtil.newInstanceIfPossible(int.class);
|
||||||
|
Assert.assertEquals(0, intValue);
|
||||||
|
|
||||||
|
final Integer integer = ConstructorUtil.newInstanceIfPossible(Integer.class);
|
||||||
|
Assert.assertEquals(new Integer(0), integer);
|
||||||
|
|
||||||
|
final Map<?, ?> map = ConstructorUtil.newInstanceIfPossible(Map.class);
|
||||||
|
Assert.assertNotNull(map);
|
||||||
|
|
||||||
|
final Collection<?> collection = ConstructorUtil.newInstanceIfPossible(Collection.class);
|
||||||
|
Assert.assertNotNull(collection);
|
||||||
|
|
||||||
|
final Week week = ConstructorUtil.newInstanceIfPossible(Week.class);
|
||||||
|
Assert.assertEquals(Week.SUNDAY, week);
|
||||||
|
|
||||||
|
final int[] intArray = ConstructorUtil.newInstanceIfPossible(int[].class);
|
||||||
|
Assert.assertArrayEquals(new int[0], intArray);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
package cn.hutool.core.reflect;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
|
public class FieldUtilTest {
|
||||||
|
@Test
|
||||||
|
public void getFieldTest() {
|
||||||
|
// 能够获取到父类字段
|
||||||
|
final Field privateField = FieldUtil.getField(ReflectUtilTest.TestSubClass.class, "privateField");
|
||||||
|
Assert.assertNotNull(privateField);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getFieldsTest() {
|
||||||
|
// 能够获取到父类字段
|
||||||
|
final Field[] fields = FieldUtil.getFields(ReflectUtilTest.TestSubClass.class);
|
||||||
|
Assert.assertEquals(4, fields.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setFieldTest() {
|
||||||
|
final ReflectUtilTest.AClass testClass = new ReflectUtilTest.AClass();
|
||||||
|
FieldUtil.setFieldValue(testClass, "a", "111");
|
||||||
|
Assert.assertEquals(111, testClass.getA());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getDeclaredField() {
|
||||||
|
final Field noField = FieldUtil.getField(ReflectUtilTest.TestSubClass.class, "noField");
|
||||||
|
Assert.assertNull(noField);
|
||||||
|
|
||||||
|
// 获取不到父类字段
|
||||||
|
final Field field = FieldUtil.getDeClearField(ReflectUtilTest.TestSubClass.class, "field");
|
||||||
|
Assert.assertNull(field);
|
||||||
|
|
||||||
|
final Field subField = FieldUtil.getField(ReflectUtilTest.TestSubClass.class, "subField");
|
||||||
|
Assert.assertNotNull(subField);
|
||||||
|
}
|
||||||
|
}
|
@ -1,13 +1,6 @@
|
|||||||
package cn.hutool.core.reflect;
|
package cn.hutool.core.reflect;
|
||||||
|
|
||||||
import cn.hutool.core.date.Week;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.junit.Assert;
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 反射工具类单元测试
|
* 反射工具类单元测试
|
||||||
@ -16,34 +9,6 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public class ReflectUtilTest {
|
public class ReflectUtilTest {
|
||||||
|
|
||||||
@Test
|
|
||||||
public void getFieldTest() {
|
|
||||||
// 能够获取到父类字段
|
|
||||||
final Field privateField = ReflectUtil.getField(TestSubClass.class, "privateField");
|
|
||||||
Assert.assertNotNull(privateField);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void getFieldsTest() {
|
|
||||||
// 能够获取到父类字段
|
|
||||||
final Field[] fields = ReflectUtil.getFields(TestSubClass.class);
|
|
||||||
Assert.assertEquals(4, fields.length);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void setFieldTest() {
|
|
||||||
final AClass testClass = new AClass();
|
|
||||||
ReflectUtil.setFieldValue(testClass, "a", "111");
|
|
||||||
Assert.assertEquals(111, testClass.getA());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void noneStaticInnerClassTest() {
|
|
||||||
final NoneStaticClass testAClass = ReflectUtil.newInstanceIfPossible(NoneStaticClass.class);
|
|
||||||
Assert.assertNotNull(testAClass);
|
|
||||||
Assert.assertEquals(2, testAClass.getA());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
static class AClass {
|
static class AClass {
|
||||||
private int a;
|
private int a;
|
||||||
@ -117,41 +82,6 @@ public class ReflectUtilTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void newInstanceIfPossibleTest(){
|
|
||||||
//noinspection ConstantConditions
|
|
||||||
final int intValue = ReflectUtil.newInstanceIfPossible(int.class);
|
|
||||||
Assert.assertEquals(0, intValue);
|
|
||||||
|
|
||||||
final Integer integer = ReflectUtil.newInstanceIfPossible(Integer.class);
|
|
||||||
Assert.assertEquals(new Integer(0), integer);
|
|
||||||
|
|
||||||
final Map<?, ?> map = ReflectUtil.newInstanceIfPossible(Map.class);
|
|
||||||
Assert.assertNotNull(map);
|
|
||||||
|
|
||||||
final Collection<?> collection = ReflectUtil.newInstanceIfPossible(Collection.class);
|
|
||||||
Assert.assertNotNull(collection);
|
|
||||||
|
|
||||||
final Week week = ReflectUtil.newInstanceIfPossible(Week.class);
|
|
||||||
Assert.assertEquals(Week.SUNDAY, week);
|
|
||||||
|
|
||||||
final int[] intArray = ReflectUtil.newInstanceIfPossible(int[].class);
|
|
||||||
Assert.assertArrayEquals(new int[0], intArray);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void getDeclaredField() {
|
|
||||||
final Field noField = ReflectUtil.getField(TestSubClass.class, "noField");
|
|
||||||
Assert.assertNull(noField);
|
|
||||||
|
|
||||||
// 获取不到父类字段
|
|
||||||
final Field field = ReflectUtil.getDeClearField(TestSubClass.class, "field");
|
|
||||||
Assert.assertNull(field);
|
|
||||||
|
|
||||||
final Field subField = ReflectUtil.getField(TestSubClass.class, "subField");
|
|
||||||
Assert.assertNotNull(subField);
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
static class TestClass {
|
static class TestClass {
|
||||||
private String privateField;
|
private String privateField;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package cn.hutool.core.util;
|
package cn.hutool.core.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.reflect.FieldUtil;
|
||||||
import cn.hutool.core.reflect.MethodUtil;
|
import cn.hutool.core.reflect.MethodUtil;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.reflect.TypeUtil;
|
import cn.hutool.core.reflect.TypeUtil;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
@ -65,7 +65,7 @@ public class TypeUtilTest {
|
|||||||
public void getActualTypesTest(){
|
public void getActualTypesTest(){
|
||||||
// 测试多层级泛型参数是否能获取成功
|
// 测试多层级泛型参数是否能获取成功
|
||||||
final Type idType = TypeUtil.getActualType(Level3.class,
|
final Type idType = TypeUtil.getActualType(Level3.class,
|
||||||
ReflectUtil.getField(Level3.class, "id"));
|
FieldUtil.getField(Level3.class, "id"));
|
||||||
|
|
||||||
Assert.assertEquals(Long.class, idType);
|
Assert.assertEquals(Long.class, idType);
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,8 @@ package cn.hutool.cron.task;
|
|||||||
|
|
||||||
import cn.hutool.core.classloader.ClassLoaderUtil;
|
import cn.hutool.core.classloader.ClassLoaderUtil;
|
||||||
import cn.hutool.core.exceptions.UtilException;
|
import cn.hutool.core.exceptions.UtilException;
|
||||||
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
import cn.hutool.core.reflect.MethodUtil;
|
import cn.hutool.core.reflect.MethodUtil;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.text.StrUtil;
|
import cn.hutool.core.text.StrUtil;
|
||||||
import cn.hutool.cron.CronException;
|
import cn.hutool.cron.CronException;
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ public class InvokeTask implements Task{
|
|||||||
if(null == clazz) {
|
if(null == clazz) {
|
||||||
throw new IllegalArgumentException("Load class with name of [" + className + "] fail !");
|
throw new IllegalArgumentException("Load class with name of [" + className + "] fail !");
|
||||||
}
|
}
|
||||||
this.obj = ReflectUtil.newInstanceIfPossible(clazz);
|
this.obj = ConstructorUtil.newInstanceIfPossible(clazz);
|
||||||
|
|
||||||
//方法
|
//方法
|
||||||
final String methodName = classNameWithMethodName.substring(splitIndex + 1);
|
final String methodName = classNameWithMethodName.substring(splitIndex + 1);
|
||||||
|
@ -4,11 +4,11 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.bean.PropDesc;
|
import cn.hutool.core.bean.PropDesc;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
import cn.hutool.core.reflect.MethodUtil;
|
import cn.hutool.core.reflect.MethodUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.text.StrUtil;
|
|
||||||
import cn.hutool.core.reflect.TypeUtil;
|
import cn.hutool.core.reflect.TypeUtil;
|
||||||
|
import cn.hutool.core.text.StrUtil;
|
||||||
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.db.DbRuntimeException;
|
import cn.hutool.db.DbRuntimeException;
|
||||||
import cn.hutool.db.Entity;
|
import cn.hutool.db.Entity;
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ public class ResultSetUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//普通bean
|
//普通bean
|
||||||
final T bean = ReflectUtil.newInstanceIfPossible(beanClass);
|
final T bean = ConstructorUtil.newInstanceIfPossible(beanClass);
|
||||||
//忽略字段大小写
|
//忽略字段大小写
|
||||||
final Map<String, PropDesc> propMap = BeanUtil.getBeanDesc(beanClass).getPropMap(true);
|
final Map<String, PropDesc> propMap = BeanUtil.getBeanDesc(beanClass).getPropMap(true);
|
||||||
String columnLabel;
|
String columnLabel;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package cn.hutool.extra.aop.proxy;
|
package cn.hutool.extra.aop.proxy;
|
||||||
|
|
||||||
import cn.hutool.extra.aop.aspects.Aspect;
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.util.ServiceLoaderUtil;
|
import cn.hutool.core.util.ServiceLoaderUtil;
|
||||||
|
import cn.hutool.extra.aop.aspects.Aspect;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ public abstract class ProxyFactory implements Serializable {
|
|||||||
* @since 5.3.1
|
* @since 5.3.1
|
||||||
*/
|
*/
|
||||||
public <T> T proxy(final T target, final Class<? extends Aspect> aspectClass) {
|
public <T> T proxy(final T target, final Class<? extends Aspect> aspectClass) {
|
||||||
return proxy(target, ReflectUtil.newInstanceIfPossible(aspectClass));
|
return proxy(target, ConstructorUtil.newInstanceIfPossible(aspectClass));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47,7 +47,7 @@ public abstract class ProxyFactory implements Serializable {
|
|||||||
* @return 代理对象
|
* @return 代理对象
|
||||||
*/
|
*/
|
||||||
public static <T> T createProxy(final T target, final Class<? extends Aspect> aspectClass) {
|
public static <T> T createProxy(final T target, final Class<? extends Aspect> aspectClass) {
|
||||||
return createProxy(target, ReflectUtil.newInstance(aspectClass));
|
return createProxy(target, ConstructorUtil.newInstance(aspectClass));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package cn.hutool.extra.cglib;
|
package cn.hutool.extra.cglib;
|
||||||
|
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
import net.sf.cglib.beans.BeanCopier;
|
import net.sf.cglib.beans.BeanCopier;
|
||||||
import net.sf.cglib.beans.BeanMap;
|
import net.sf.cglib.beans.BeanMap;
|
||||||
import net.sf.cglib.core.Converter;
|
import net.sf.cglib.core.Converter;
|
||||||
@ -45,7 +45,7 @@ public class CglibUtil {
|
|||||||
* @return 目标对象
|
* @return 目标对象
|
||||||
*/
|
*/
|
||||||
public static <T> T copy(final Object source, final Class<T> targetClass, final Converter converter) {
|
public static <T> T copy(final Object source, final Class<T> targetClass, final Converter converter) {
|
||||||
final T target = ReflectUtil.newInstanceIfPossible(targetClass);
|
final T target = ConstructorUtil.newInstanceIfPossible(targetClass);
|
||||||
copy(source, target, converter);
|
copy(source, target, converter);
|
||||||
return target;
|
return target;
|
||||||
}
|
}
|
||||||
@ -178,6 +178,6 @@ public class CglibUtil {
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
public static <T> T toBean(final Map map, final Class<T> beanClass){
|
public static <T> T toBean(final Map map, final Class<T> beanClass){
|
||||||
return fillBean(map, ReflectUtil.newInstanceIfPossible(beanClass));
|
return fillBean(map, ConstructorUtil.newInstanceIfPossible(beanClass));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,11 +15,11 @@ import cn.hutool.core.net.NetUtil;
|
|||||||
import cn.hutool.core.net.URLEncoder;
|
import cn.hutool.core.net.URLEncoder;
|
||||||
import cn.hutool.core.net.multipart.MultipartFormData;
|
import cn.hutool.core.net.multipart.MultipartFormData;
|
||||||
import cn.hutool.core.net.multipart.UploadSetting;
|
import cn.hutool.core.net.multipart.UploadSetting;
|
||||||
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
|
import cn.hutool.core.text.StrUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.CharsetUtil;
|
import cn.hutool.core.util.CharsetUtil;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.text.StrUtil;
|
|
||||||
import jakarta.servlet.ServletOutputStream;
|
import jakarta.servlet.ServletOutputStream;
|
||||||
import jakarta.servlet.ServletRequest;
|
import jakarta.servlet.ServletRequest;
|
||||||
import jakarta.servlet.http.Cookie;
|
import jakarta.servlet.http.Cookie;
|
||||||
@ -182,7 +182,7 @@ public class JakartaServletUtil {
|
|||||||
* @return Bean
|
* @return Bean
|
||||||
*/
|
*/
|
||||||
public static <T> T toBean(final ServletRequest request, final Class<T> beanClass, final boolean isIgnoreError) {
|
public static <T> T toBean(final ServletRequest request, final Class<T> beanClass, final boolean isIgnoreError) {
|
||||||
return fillBean(request, ReflectUtil.newInstanceIfPossible(beanClass), isIgnoreError);
|
return fillBean(request, ConstructorUtil.newInstanceIfPossible(beanClass), isIgnoreError);
|
||||||
}
|
}
|
||||||
// --------------------------------------------------------- fillBean end
|
// --------------------------------------------------------- fillBean end
|
||||||
|
|
||||||
|
@ -15,11 +15,11 @@ import cn.hutool.core.net.NetUtil;
|
|||||||
import cn.hutool.core.net.URLEncoder;
|
import cn.hutool.core.net.URLEncoder;
|
||||||
import cn.hutool.core.net.multipart.MultipartFormData;
|
import cn.hutool.core.net.multipart.MultipartFormData;
|
||||||
import cn.hutool.core.net.multipart.UploadSetting;
|
import cn.hutool.core.net.multipart.UploadSetting;
|
||||||
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
|
import cn.hutool.core.text.StrUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.CharsetUtil;
|
import cn.hutool.core.util.CharsetUtil;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.text.StrUtil;
|
|
||||||
|
|
||||||
import javax.servlet.ServletOutputStream;
|
import javax.servlet.ServletOutputStream;
|
||||||
import javax.servlet.ServletRequest;
|
import javax.servlet.ServletRequest;
|
||||||
@ -182,7 +182,7 @@ public class ServletUtil {
|
|||||||
* @return Bean
|
* @return Bean
|
||||||
*/
|
*/
|
||||||
public static <T> T toBean(final ServletRequest request, final Class<T> beanClass, final boolean isIgnoreError) {
|
public static <T> T toBean(final ServletRequest request, final Class<T> beanClass, final boolean isIgnoreError) {
|
||||||
return fillBean(request, ReflectUtil.newInstanceIfPossible(beanClass), isIgnoreError);
|
return fillBean(request, ConstructorUtil.newInstanceIfPossible(beanClass), isIgnoreError);
|
||||||
}
|
}
|
||||||
// --------------------------------------------------------- fillBean end
|
// --------------------------------------------------------- fillBean end
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package cn.hutool.extra.template.engine;
|
package cn.hutool.extra.template.engine;
|
||||||
|
|
||||||
import cn.hutool.core.lang.Singleton;
|
import cn.hutool.core.lang.Singleton;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
import cn.hutool.core.util.ServiceLoaderUtil;
|
|
||||||
import cn.hutool.core.text.StrUtil;
|
import cn.hutool.core.text.StrUtil;
|
||||||
|
import cn.hutool.core.util.ServiceLoaderUtil;
|
||||||
import cn.hutool.extra.template.TemplateConfig;
|
import cn.hutool.extra.template.TemplateConfig;
|
||||||
import cn.hutool.extra.template.TemplateEngine;
|
import cn.hutool.extra.template.TemplateEngine;
|
||||||
import cn.hutool.extra.template.TemplateException;
|
import cn.hutool.extra.template.TemplateException;
|
||||||
@ -61,7 +61,7 @@ public class TemplateFactory {
|
|||||||
final Class<? extends TemplateEngine> customEngineClass = config.getCustomEngine();
|
final Class<? extends TemplateEngine> customEngineClass = config.getCustomEngine();
|
||||||
final TemplateEngine engine;
|
final TemplateEngine engine;
|
||||||
if(null != customEngineClass){
|
if(null != customEngineClass){
|
||||||
engine = ReflectUtil.newInstance(customEngineClass);
|
engine = ConstructorUtil.newInstance(customEngineClass);
|
||||||
}else{
|
}else{
|
||||||
engine = ServiceLoaderUtil.loadFirstAvailable(TemplateEngine.class);
|
engine = ServiceLoaderUtil.loadFirstAvailable(TemplateEngine.class);
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package cn.hutool.http;
|
package cn.hutool.http;
|
||||||
|
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.text.StrUtil;
|
|
||||||
import cn.hutool.core.net.URLUtil;
|
import cn.hutool.core.net.URLUtil;
|
||||||
|
import cn.hutool.core.reflect.FieldUtil;
|
||||||
|
import cn.hutool.core.text.StrUtil;
|
||||||
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.hutool.http.ssl.DefaultSSLInfo;
|
import cn.hutool.http.ssl.DefaultSSLInfo;
|
||||||
|
|
||||||
import javax.net.ssl.HostnameVerifier;
|
import javax.net.ssl.HostnameVerifier;
|
||||||
@ -453,7 +453,7 @@ public class HttpConnection {
|
|||||||
// 修改为POST,而且无法调用setRequestMethod方法修改,因此此处使用反射强制修改字段属性值
|
// 修改为POST,而且无法调用setRequestMethod方法修改,因此此处使用反射强制修改字段属性值
|
||||||
// https://stackoverflow.com/questions/978061/http-get-with-request-body/983458
|
// https://stackoverflow.com/questions/978061/http-get-with-request-body/983458
|
||||||
if(method == Method.GET && method != getMethod()){
|
if(method == Method.GET && method != getMethod()){
|
||||||
ReflectUtil.setFieldValue(this.conn, "method", Method.GET.name());
|
FieldUtil.setFieldValue(this.conn, "method", Method.GET.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
package cn.hutool.http;
|
package cn.hutool.http;
|
||||||
|
|
||||||
|
import cn.hutool.core.reflect.FieldUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.RandomUtil;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.http.cookie.GlobalCookieManager;
|
import cn.hutool.http.cookie.GlobalCookieManager;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -192,20 +192,20 @@ public class HttpGlobalConfig implements Serializable {
|
|||||||
if (isAllowPatch) {
|
if (isAllowPatch) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final Field methodsField = ReflectUtil.getField(HttpURLConnection.class, "methods");
|
final Field methodsField = FieldUtil.getField(HttpURLConnection.class, "methods");
|
||||||
if (null == methodsField) {
|
if (null == methodsField) {
|
||||||
throw new HttpException("None static field [methods] with Java version: [{}]", System.getProperty("java.version"));
|
throw new HttpException("None static field [methods] with Java version: [{}]", System.getProperty("java.version"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 去除final修饰
|
// 去除final修饰
|
||||||
ReflectUtil.setFieldValue(methodsField, "modifiers", methodsField.getModifiers() & ~Modifier.FINAL);
|
FieldUtil.setFieldValue(methodsField, "modifiers", methodsField.getModifiers() & ~Modifier.FINAL);
|
||||||
final String[] methods = {
|
final String[] methods = {
|
||||||
"GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE", "PATCH"
|
"GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE", "PATCH"
|
||||||
};
|
};
|
||||||
ReflectUtil.setFieldValue(null, methodsField, methods);
|
FieldUtil.setFieldValue(null, methodsField, methods);
|
||||||
|
|
||||||
// 检查注入是否成功
|
// 检查注入是否成功
|
||||||
final Object staticFieldValue = ReflectUtil.getStaticFieldValue(methodsField);
|
final Object staticFieldValue = FieldUtil.getStaticFieldValue(methodsField);
|
||||||
if (false == ArrayUtil.equals(methods, staticFieldValue)) {
|
if (false == ArrayUtil.equals(methods, staticFieldValue)) {
|
||||||
throw new HttpException("Inject value to field [methods] failed!");
|
throw new HttpException("Inject value to field [methods] failed!");
|
||||||
}
|
}
|
||||||
|
@ -7,10 +7,10 @@ import cn.hutool.core.convert.Converter;
|
|||||||
import cn.hutool.core.convert.ConverterRegistry;
|
import cn.hutool.core.convert.ConverterRegistry;
|
||||||
import cn.hutool.core.convert.impl.ArrayConverter;
|
import cn.hutool.core.convert.impl.ArrayConverter;
|
||||||
import cn.hutool.core.convert.impl.BeanConverter;
|
import cn.hutool.core.convert.impl.BeanConverter;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.text.StrUtil;
|
|
||||||
import cn.hutool.core.reflect.TypeUtil;
|
import cn.hutool.core.reflect.TypeUtil;
|
||||||
|
import cn.hutool.core.text.StrUtil;
|
||||||
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.hutool.json.serialize.GlobalSerializeMapping;
|
import cn.hutool.json.serialize.GlobalSerializeMapping;
|
||||||
import cn.hutool.json.serialize.JSONDeserializer;
|
import cn.hutool.json.serialize.JSONDeserializer;
|
||||||
|
|
||||||
@ -78,7 +78,8 @@ public class JSONConverter implements Converter<JSON> {
|
|||||||
if(targetType instanceof Class){
|
if(targetType instanceof Class){
|
||||||
final Class<?> clazz = (Class<?>) targetType;
|
final Class<?> clazz = (Class<?>) targetType;
|
||||||
if (JSONBeanParser.class.isAssignableFrom(clazz)){
|
if (JSONBeanParser.class.isAssignableFrom(clazz)){
|
||||||
@SuppressWarnings("rawtypes") final JSONBeanParser target = (JSONBeanParser) ReflectUtil.newInstanceIfPossible(clazz);
|
@SuppressWarnings("rawtypes")
|
||||||
|
final JSONBeanParser target = (JSONBeanParser) ConstructorUtil.newInstanceIfPossible(clazz);
|
||||||
if(null == target){
|
if(null == target){
|
||||||
throw new ConvertException("Can not instance [{}]", targetType);
|
throw new ConvertException("Can not instance [{}]", targetType);
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,9 @@ import cn.hutool.core.bean.copier.CopyOptions;
|
|||||||
import cn.hutool.core.bean.copier.ValueProvider;
|
import cn.hutool.core.bean.copier.ValueProvider;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.lang.getter.OptNullBasicTypeFromStringGetter;
|
import cn.hutool.core.lang.getter.OptNullBasicTypeFromStringGetter;
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.text.StrUtil;
|
import cn.hutool.core.text.StrUtil;
|
||||||
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.hutool.log.Log;
|
import cn.hutool.log.Log;
|
||||||
import cn.hutool.log.LogFactory;
|
import cn.hutool.log.LogFactory;
|
||||||
|
|
||||||
@ -311,7 +311,7 @@ public abstract class AbsSetting implements OptNullBasicTypeFromStringGetter<Str
|
|||||||
* @since 5.0.6
|
* @since 5.0.6
|
||||||
*/
|
*/
|
||||||
public <T> T toBean(final String group, final Class<T> beanClass) {
|
public <T> T toBean(final String group, final Class<T> beanClass) {
|
||||||
return toBean(group, ReflectUtil.newInstanceIfPossible(beanClass));
|
return toBean(group, ConstructorUtil.newInstanceIfPossible(beanClass));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2,8 +2,6 @@ package cn.hutool.setting.dialect;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.lang.getter.BasicTypeGetter;
|
|
||||||
import cn.hutool.core.lang.getter.OptBasicTypeGetter;
|
|
||||||
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.io.FileUtil;
|
||||||
import cn.hutool.core.io.IORuntimeException;
|
import cn.hutool.core.io.IORuntimeException;
|
||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
@ -16,10 +14,12 @@ import cn.hutool.core.io.watch.SimpleWatcher;
|
|||||||
import cn.hutool.core.io.watch.WatchMonitor;
|
import cn.hutool.core.io.watch.WatchMonitor;
|
||||||
import cn.hutool.core.io.watch.WatchUtil;
|
import cn.hutool.core.io.watch.WatchUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.lang.getter.BasicTypeGetter;
|
||||||
|
import cn.hutool.core.lang.getter.OptBasicTypeGetter;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.CharsetUtil;
|
import cn.hutool.core.reflect.ConstructorUtil;
|
||||||
import cn.hutool.core.reflect.ReflectUtil;
|
|
||||||
import cn.hutool.core.text.StrUtil;
|
import cn.hutool.core.text.StrUtil;
|
||||||
|
import cn.hutool.core.util.CharsetUtil;
|
||||||
import cn.hutool.log.StaticLog;
|
import cn.hutool.log.StaticLog;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
@ -549,7 +549,7 @@ public final class Props extends Properties implements BasicTypeGetter<String>,
|
|||||||
* @since 4.6.3
|
* @since 4.6.3
|
||||||
*/
|
*/
|
||||||
public <T> T toBean(final Class<T> beanClass, final String prefix) {
|
public <T> T toBean(final Class<T> beanClass, final String prefix) {
|
||||||
final T bean = ReflectUtil.newInstanceIfPossible(beanClass);
|
final T bean = ConstructorUtil.newInstanceIfPossible(beanClass);
|
||||||
return fillBean(bean, prefix);
|
return fillBean(bean, prefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user