diff --git a/hutool-core/src/main/java/cn/hutool/core/io/FastStringWriter.java b/hutool-core/src/main/java/cn/hutool/core/io/FastStringWriter.java index 1545ab99f..70c573b2b 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/FastStringWriter.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/FastStringWriter.java @@ -12,13 +12,15 @@ import java.io.Writer; */ public final class FastStringWriter extends Writer { - private final StrBuilder builder; + private static final int DEFAULT_CAPACITY = 16; + + private final StringBuilder builder; /** * 构造 */ public FastStringWriter() { - this(StrBuilder.DEFAULT_CAPACITY); + this(DEFAULT_CAPACITY); } /** @@ -28,9 +30,9 @@ public final class FastStringWriter extends Writer { */ public FastStringWriter(int initialSize) { if (initialSize < 0) { - initialSize = StrBuilder.DEFAULT_CAPACITY; + initialSize = DEFAULT_CAPACITY; } - this.builder = new StrBuilder(initialSize); + this.builder = new StringBuilder(initialSize); } diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/ReflectUtil.java b/hutool-core/src/main/java/cn/hutool/core/reflect/ReflectUtil.java index 5d912d725..cffa3e33e 100644 --- a/hutool-core/src/main/java/cn/hutool/core/reflect/ReflectUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/reflect/ReflectUtil.java @@ -392,7 +392,6 @@ public class ReflectUtil { /** * 获得指定类过滤后的Public方法列表
- * TODO 6.x此方法更改返回Method[] * * @param clazz 查找方法的类 * @param filter 过滤器 diff --git a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java index ced27f492..09ef54cbe 100755 --- a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java @@ -4191,16 +4191,6 @@ public class CharSequenceUtil { return sb; } - /** - * 创建StrBuilder对象 - * - * @param strs 初始字符串列表 - * @return StrBuilder对象 - */ - public static StrBuilder strBuilder(final CharSequence... strs) { - return StrBuilder.create(strs); - } - // ------------------------------------------------------------------------ getter and setter /** diff --git a/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java index b1440c4ce..b3e63f3da 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java @@ -1,6 +1,5 @@ package cn.hutool.core.text; -import cn.hutool.core.lang.id.IdUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.CharsetUtil; @@ -272,16 +271,6 @@ public class StrUtil extends CharSequenceUtil implements StrPool { return new StringBuilder(); } - /** - * 创建StrBuilder对象 - * - * @return StrBuilder对象 - * @since 4.0.1 - */ - public static StrBuilder strBuilder() { - return StrBuilder.create(); - } - /** * 创建StringBuilder对象 * @@ -292,17 +281,6 @@ public class StrUtil extends CharSequenceUtil implements StrPool { return new StringBuilder(capacity); } - /** - * 创建StrBuilder对象 - * - * @param capacity 初始大小 - * @return StrBuilder对象 - * @since 4.0.1 - */ - public static StrBuilder strBuilder(final int capacity) { - return StrBuilder.create(capacity); - } - /** * 获得StringReader * @@ -412,17 +390,6 @@ public class StrUtil extends CharSequenceUtil implements StrPool { return TextSimilarity.similar(str1, str2, scale); } - /** - * 生成随机UUID - * - * @return UUID字符串 - * @see IdUtil#randomUUID() - * @since 4.0.10 - */ - public static String uuid() { - return IdUtil.randomUUID(); - } - /** * 格式化文本,使用 {varName} 占位
* map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) ---=》 aValue and bValue diff --git a/hutool-core/src/main/java/cn/hutool/core/text/escape/NumericEntityUnescaper.java b/hutool-core/src/main/java/cn/hutool/core/text/escape/NumericEntityUnescaper.java index 638f15121..286517de7 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/escape/NumericEntityUnescaper.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/escape/NumericEntityUnescaper.java @@ -1,6 +1,5 @@ package cn.hutool.core.text.escape; -import cn.hutool.core.text.StrBuilder; import cn.hutool.core.text.replacer.StrReplacer; import cn.hutool.core.util.CharUtil; @@ -14,7 +13,7 @@ public class NumericEntityUnescaper extends StrReplacer { private static final long serialVersionUID = 1L; @Override - protected int replace(final CharSequence str, final int pos, final StrBuilder out) { + protected int replace(final CharSequence str, final int pos, final StringBuilder out) { final int len = str.length(); // 检查以确保以&#开头 if (str.charAt(pos) == '&' && pos < len - 2 && str.charAt(pos + 1) == '#') { diff --git a/hutool-core/src/main/java/cn/hutool/core/text/replacer/LookupReplacer.java b/hutool-core/src/main/java/cn/hutool/core/text/replacer/LookupReplacer.java index 6bbb4ce03..de1696ac1 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/replacer/LookupReplacer.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/replacer/LookupReplacer.java @@ -1,7 +1,5 @@ package cn.hutool.core.text.replacer; -import cn.hutool.core.text.StrBuilder; - import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -51,7 +49,7 @@ public class LookupReplacer extends StrReplacer { } @Override - protected int replace(final CharSequence str, final int pos, final StrBuilder out) { + protected int replace(final CharSequence str, final int pos, final StringBuilder out) { if (prefixSet.contains(str.charAt(pos))) { int max = this.maxLength; if (pos + this.maxLength > str.length()) { diff --git a/hutool-core/src/main/java/cn/hutool/core/text/replacer/ReplacerChain.java b/hutool-core/src/main/java/cn/hutool/core/text/replacer/ReplacerChain.java index 3f327830a..bee515fe9 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/replacer/ReplacerChain.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/replacer/ReplacerChain.java @@ -1,7 +1,6 @@ package cn.hutool.core.text.replacer; import cn.hutool.core.lang.Chain; -import cn.hutool.core.text.StrBuilder; import java.util.Iterator; import java.util.LinkedList; @@ -42,7 +41,7 @@ public class ReplacerChain extends StrReplacer implements Chain, Serializabl * @param out 输出 * @return 处理的原字符串长度,0表示跳过此字符 */ - protected abstract int replace(CharSequence str, int pos, StrBuilder out); + protected abstract int replace(CharSequence str, int pos, StringBuilder out); @Override public CharSequence replace(final CharSequence t) { final int len = t.length(); - final StrBuilder builder = StrBuilder.create(len); + final StringBuilder builder = new StringBuilder(len); int pos = 0;//当前位置 int consumed;//处理过的字符数 while (pos < len) { diff --git a/hutool-core/src/test/java/cn/hutool/core/text/StrBuilderTest.java b/hutool-core/src/test/java/cn/hutool/core/text/StrBuilderTest.java deleted file mode 100644 index 4d9e0635d..000000000 --- a/hutool-core/src/test/java/cn/hutool/core/text/StrBuilderTest.java +++ /dev/null @@ -1,119 +0,0 @@ -package cn.hutool.core.text; - -import org.junit.Assert; -import org.junit.Ignore; -import org.junit.Test; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.date.TimeInterval; -import cn.hutool.core.lang.Console; - -/** - * StrBuilder单元测试 - * @author looly - * - */ -public class StrBuilderTest { - - /** - * StrBuilder的性能测试 - */ - @Test - @Ignore - public void benchTest() { - final TimeInterval timer = DateUtil.timer(); - final StrBuilder builder = StrBuilder.create(); - for(int i =0; i< 1000000; i++) { - builder.append("test"); - builder.reset(); - } - Console.log(timer.interval()); - - timer.restart(); - StringBuilder b2 = new StringBuilder(); - for(int i =0; i< 1000000; i++) { - b2.append("test"); - b2 = new StringBuilder(); - } - Console.log(timer.interval()); - } - - @Test - public void appendTest() { - final StrBuilder builder = StrBuilder.create(); - builder.append("aaa").append("你好").append('r'); - Assert.assertEquals("aaa你好r", builder.toString()); - } - - @Test - public void insertTest() { - final StrBuilder builder = StrBuilder.create(1); - builder.append("aaa").append("你好").append('r'); - builder.insert(3, "数据插入"); - Assert.assertEquals("aaa数据插入你好r", builder.toString()); - } - - @Test - public void insertTest2() { - final StrBuilder builder = StrBuilder.create(1); - builder.append("aaa").append("你好").append('r'); - builder.insert(8, "数据插入"); - Assert.assertEquals("aaa你好r 数据插入", builder.toString()); - } - - @Test - public void resetTest() { - final StrBuilder builder = StrBuilder.create(1); - builder.append("aaa").append("你好").append('r'); - builder.insert(3, "数据插入"); - builder.reset(); - Assert.assertEquals("", builder.toString()); - } - - @Test - public void resetTest2() { - final StrBuilder builder = StrBuilder.create(1); - builder.append("aaa").append("你好").append('r'); - builder.insert(3, "数据插入"); - builder.reset(); - builder.append("bbb".toCharArray()); - Assert.assertEquals("bbb", builder.toString()); - } - - @Test - public void appendObjectTest() { - final StrBuilder builder = StrBuilder.create(1); - builder.append(123).append(456.123D).append(true).append('\n'); - Assert.assertEquals("123456.123true\n", builder.toString()); - } - - @Test - public void delTest() { - // 删除全部测试 - final StrBuilder strBuilder = new StrBuilder("ABCDEFG"); - final int length = strBuilder.length(); - final StrBuilder builder = strBuilder.del(0, length); - Assert.assertEquals("", builder.toString()); - } - - @Test - public void delTest2() { - // 删除中间部分测试 - final StrBuilder strBuilder = new StrBuilder("ABCDEFG"); - final StrBuilder builder = strBuilder.del(2,6); - Assert.assertEquals("ABG", builder.toString()); - } - - @Test - public void delToTest() { - final StrBuilder strBuilder = new StrBuilder("ABCDEFG"); - - // 不处理 - StrBuilder builder = strBuilder.delTo(7); - Assert.assertEquals("ABCDEFG", builder.toString()); - - // 删除全部 - builder = strBuilder.delTo(0); - Assert.assertEquals("", builder.toString()); - } -} diff --git a/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java b/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java index f27ec8713..adbe6ba04 100644 --- a/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java +++ b/hutool-cron/src/main/java/cn/hutool/cron/task/InvokeTask.java @@ -1,8 +1,7 @@ package cn.hutool.cron.task; -import cn.hutool.core.exceptions.UtilException; import cn.hutool.core.classloader.ClassLoaderUtil; -import cn.hutool.core.reflect.ClassUtil; +import cn.hutool.core.exceptions.UtilException; import cn.hutool.core.reflect.ReflectUtil; import cn.hutool.core.text.StrUtil; import cn.hutool.cron.CronException; @@ -51,7 +50,7 @@ public class InvokeTask implements Task{ if(StrUtil.isBlank(methodName)) { throw new IllegalArgumentException("Method name is blank !"); } - this.method = ClassUtil.getPublicMethod(clazz, methodName); + this.method = ReflectUtil.getPublicMethod(clazz, methodName); if(null == this.method) { throw new IllegalArgumentException("No method with name of [" + methodName + "] !"); } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/aop/ProxyUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/aop/ProxyUtil.java index 9abebf60e..90123a7e3 100755 --- a/hutool-extra/src/main/java/cn/hutool/extra/aop/ProxyUtil.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/aop/ProxyUtil.java @@ -1,8 +1,8 @@ package cn.hutool.extra.aop; +import cn.hutool.core.classloader.ClassLoaderUtil; import cn.hutool.extra.aop.aspects.Aspect; import cn.hutool.extra.aop.proxy.ProxyFactory; -import cn.hutool.core.reflect.ClassUtil; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; @@ -69,6 +69,6 @@ public final class ProxyUtil { * @return 代理类 */ public static T newProxyInstance(final InvocationHandler invocationHandler, final Class... interfaces) { - return newProxyInstance(ClassUtil.getClassLoader(), invocationHandler, interfaces); + return newProxyInstance(ClassLoaderUtil.getClassLoader(), invocationHandler, interfaces); } } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/freemarker/FreemarkerEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/freemarker/FreemarkerEngine.java index 1ba2f69f5..0952066ff 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/freemarker/FreemarkerEngine.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/freemarker/FreemarkerEngine.java @@ -1,8 +1,8 @@ package cn.hutool.extra.template.engine.freemarker; +import cn.hutool.core.classloader.ClassLoaderUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IORuntimeException; -import cn.hutool.core.reflect.ClassUtil; import cn.hutool.extra.template.Template; import cn.hutool.extra.template.TemplateConfig; import cn.hutool.extra.template.TemplateEngine; @@ -99,7 +99,7 @@ public class FreemarkerEngine implements TemplateEngine { switch (config.getResourceMode()) { case CLASSPATH: - cfg.setTemplateLoader(new ClassTemplateLoader(ClassUtil.getClassLoader(), config.getPath())); + cfg.setTemplateLoader(new ClassTemplateLoader(ClassLoaderUtil.getClassLoader(), config.getPath())); break; case FILE: try { diff --git a/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java b/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java index 71f1c556e..99e578653 100755 --- a/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java +++ b/hutool-http/src/main/java/cn/hutool/http/HttpUtil.java @@ -667,7 +667,7 @@ public class HttpUtil { } // 始终有参数 - final StrBuilder urlBuilder = StrBuilder.create(url.length() + queryString.length() + 16); + final StringBuilder urlBuilder = new StringBuilder(url.length() + queryString.length() + 16); final int qmIndex = url.indexOf('?'); if (qmIndex > 0) { // 原URL带参数,则对这部分参数单独编码(如果选项为进行编码)