mirror of
https://gitee.com/dromara/hutool.git
synced 2025-07-16 16:50:45 +08:00
fix code
This commit is contained in:
parent
17cd183722
commit
8e2c06c671
@ -70,4 +70,4 @@ public class TransCollection<F, T> extends AbstractCollection<T> {
|
||||
public int size() {
|
||||
return fromCollection.size();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,12 @@
|
||||
package cn.hutool.core.exceptions;
|
||||
|
||||
import cn.hutool.core.lang.func.*;
|
||||
import cn.hutool.core.lang.func.Func;
|
||||
import cn.hutool.core.lang.func.Func0;
|
||||
import cn.hutool.core.lang.func.Func1;
|
||||
import cn.hutool.core.lang.func.Supplier1;
|
||||
import cn.hutool.core.lang.func.VoidFunc;
|
||||
import cn.hutool.core.lang.func.VoidFunc0;
|
||||
import cn.hutool.core.lang.func.VoidFunc1;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
|
@ -98,4 +98,4 @@ public class ConsistentHash<T> implements Serializable{
|
||||
//正好命中
|
||||
return circle.get(hash);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,9 +4,9 @@ import cn.hutool.core.bean.BeanPath;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.getter.BasicTypeGetter;
|
||||
import cn.hutool.core.lang.func.Func0;
|
||||
import cn.hutool.core.lang.func.LambdaUtil;
|
||||
import cn.hutool.core.getter.BasicTypeGetter;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
|
@ -14,4 +14,4 @@ public interface Filter<T> {
|
||||
* @return 是否接受对象
|
||||
*/
|
||||
boolean accept(T t);
|
||||
}
|
||||
}
|
||||
|
0
hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/SimpleCache.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/SimpleCache.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
Executable file → Normal file
@ -1,7 +1,7 @@
|
||||
package cn.hutool.core.lang;
|
||||
|
||||
import cn.hutool.core.date.SystemClock;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
|
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/Ansi8BitColor.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/Ansi8BitColor.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiBackground.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiBackground.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiColor.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiColor.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiElement.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiElement.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiEncoder.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiEncoder.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiStyle.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/AnsiStyle.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/package-info.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/ansi/package-info.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/caller/CallerUtil.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/caller/CallerUtil.java
Executable file → Normal file
@ -4,4 +4,4 @@
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package cn.hutool.core.lang.caller;
|
||||
package cn.hutool.core.lang.caller;
|
||||
|
@ -4,4 +4,4 @@
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package cn.hutool.core.lang.copier;
|
||||
package cn.hutool.core.lang.copier;
|
||||
|
0
hutool-core/src/main/java/cn/hutool/core/lang/func/LambdaUtil.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/LambdaUtil.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/Supplier1.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/Supplier1.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/Supplier2.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/Supplier2.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/Supplier3.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/Supplier3.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/Supplier4.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/Supplier4.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/Supplier5.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/func/Supplier5.java
Executable file → Normal file
@ -7,4 +7,4 @@
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package cn.hutool.core.lang.func;
|
||||
package cn.hutool.core.lang.func;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.lang.generator;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
|
||||
/**
|
||||
* UUID生成器
|
||||
|
@ -4,4 +4,4 @@
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package cn.hutool.core.lang.generator;
|
||||
package cn.hutool.core.lang.generator;
|
||||
|
0
hutool-core/src/main/java/cn/hutool/core/lang/hash/KetamaHash.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/hash/KetamaHash.java
Executable file → Normal file
@ -4,4 +4,4 @@
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package cn.hutool.core.lang.hash;
|
||||
package cn.hutool.core.lang.hash;
|
||||
|
@ -1,13 +1,14 @@
|
||||
package cn.hutool.core.util;
|
||||
package cn.hutool.core.lang.id;
|
||||
|
||||
import cn.hutool.core.exceptions.UtilException;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.ObjectId;
|
||||
import cn.hutool.core.lang.Singleton;
|
||||
import cn.hutool.core.lang.Snowflake;
|
||||
import cn.hutool.core.lang.UUID;
|
||||
import cn.hutool.core.lang.id.UUID;
|
||||
import cn.hutool.core.lang.id.NanoId;
|
||||
import cn.hutool.core.net.NetUtil;
|
||||
import cn.hutool.core.util.RuntimeUtil;
|
||||
|
||||
/**
|
||||
* ID生成器工具类,此工具类中主要封装:
|
@ -15,7 +15,7 @@ import java.util.Random;
|
||||
* </ul>
|
||||
*
|
||||
* <p>
|
||||
* 此实现的逻辑基于JavaScript的NanoId实现,见:https://github.com/ai/nanoid
|
||||
* 此实现的逻辑基于JavaScript的NanoId实现,见:<a href="https://github.com/ai/nanoid">https://github.com/ai/nanoid</a>
|
||||
*
|
||||
* @author David Klebanoff
|
||||
*/
|
||||
|
2
hutool-core/src/main/java/cn/hutool/core/lang/Pid.java → hutool-core/src/main/java/cn/hutool/core/lang/id/Pid.java
Executable file → Normal file
2
hutool-core/src/main/java/cn/hutool/core/lang/Pid.java → hutool-core/src/main/java/cn/hutool/core/lang/id/Pid.java
Executable file → Normal file
@ -1,4 +1,4 @@
|
||||
package cn.hutool.core.lang;
|
||||
package cn.hutool.core.lang.id;
|
||||
|
||||
import cn.hutool.core.exceptions.UtilException;
|
||||
import cn.hutool.core.util.StrUtil;
|
@ -1,4 +1,4 @@
|
||||
package cn.hutool.core.lang;
|
||||
package cn.hutool.core.lang.id;
|
||||
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
0
hutool-core/src/main/java/cn/hutool/core/lang/id/package-info.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/id/package-info.java
Executable file → Normal file
@ -18,4 +18,4 @@ public interface Interner<T> {
|
||||
* @return 样例对象
|
||||
*/
|
||||
T intern(T sample);
|
||||
}
|
||||
}
|
||||
|
0
hutool-core/src/main/java/cn/hutool/core/lang/intern/WeakInterner.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/intern/WeakInterner.java
Executable file → Normal file
@ -5,4 +5,4 @@
|
||||
*
|
||||
* @author looly
|
||||
*/
|
||||
package cn.hutool.core.lang.intern;
|
||||
package cn.hutool.core.lang.intern;
|
||||
|
@ -13,7 +13,7 @@ import java.util.function.Supplier;
|
||||
*
|
||||
* @param <T> 被加载对象类型
|
||||
* @author Mr.Po
|
||||
* @see cn.hutool.core.lang.loader.LazyLoader
|
||||
* @see LazyLoader
|
||||
* @since 5.6.1
|
||||
*/
|
||||
public class LazyFunLoader<T> extends LazyLoader<T> {
|
||||
|
@ -4,4 +4,4 @@
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package cn.hutool.core.lang.loader;
|
||||
package cn.hutool.core.lang.loader;
|
||||
|
@ -20,4 +20,4 @@ public interface Mutable<T> {
|
||||
*/
|
||||
void set(T value);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -4,4 +4,4 @@
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package cn.hutool.core.lang.mutable;
|
||||
package cn.hutool.core.lang.mutable;
|
||||
|
@ -4,4 +4,4 @@
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
package cn.hutool.core.lang;
|
||||
package cn.hutool.core.lang;
|
||||
|
0
hutool-core/src/main/java/cn/hutool/core/lang/reflect/ActualTypeMapperPool.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/reflect/ActualTypeMapperPool.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/reflect/LookupFactory.java
Executable file → Normal file
0
hutool-core/src/main/java/cn/hutool/core/lang/reflect/LookupFactory.java
Executable file → Normal file
2
hutool-core/src/main/java/cn/hutool/core/lang/reflect/MethodHandleUtil.java
Executable file → Normal file
2
hutool-core/src/main/java/cn/hutool/core/lang/reflect/MethodHandleUtil.java
Executable file → Normal file
@ -1,7 +1,7 @@
|
||||
package cn.hutool.core.lang.reflect;
|
||||
|
||||
import cn.hutool.core.exceptions.UtilException;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.exceptions.UtilException;
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
|
@ -4,4 +4,4 @@
|
||||
* @author looly
|
||||
* @since 5.4.2
|
||||
*/
|
||||
package cn.hutool.core.lang.reflect;
|
||||
package cn.hutool.core.lang.reflect;
|
||||
|
@ -11,4 +11,4 @@
|
||||
* @author liangbaikai(https://gitee.com/liangbaikai00/)
|
||||
* @since 5.2.1
|
||||
*/
|
||||
package cn.hutool.core.lang.tree;
|
||||
package cn.hutool.core.lang.tree;
|
||||
|
@ -3,7 +3,7 @@ package cn.hutool.core.util;
|
||||
import cn.hutool.core.exceptions.UtilException;
|
||||
import cn.hutool.core.io.IORuntimeException;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.lang.Pid;
|
||||
import cn.hutool.core.lang.id.Pid;
|
||||
import cn.hutool.core.text.StrBuilder;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.hutool.core.util;
|
||||
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.hutool.core.text.StrBuilder;
|
||||
import cn.hutool.core.text.StrFormatter;
|
||||
|
@ -11,7 +11,6 @@ import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.time.temporal.TemporalAccessor;
|
||||
import java.util.Date;
|
||||
|
||||
public class LocalDateTimeUtilTest {
|
||||
|
||||
|
@ -11,7 +11,7 @@ import cn.hutool.core.lang.Console;
|
||||
|
||||
/**
|
||||
* 文件监听单元测试
|
||||
*
|
||||
*
|
||||
* @author Looly
|
||||
*
|
||||
*/
|
||||
@ -43,12 +43,12 @@ public class WatchMonitorTest {
|
||||
Console.log("Overflow:{}-> {}", currentPath, obj);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
WatchMonitor monitor = WatchMonitor.createAll("d:/test/aaa.txt", new DelayWatcher(watcher, 500));
|
||||
|
||||
|
||||
monitor.setMaxDepth(0);
|
||||
monitor.start();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -3,30 +3,30 @@ package cn.hutool.core.lang;
|
||||
import org.junit.Test;
|
||||
|
||||
public class AssertTest {
|
||||
|
||||
|
||||
@Test
|
||||
public void isNullTest(){
|
||||
String a = null;
|
||||
cn.hutool.core.lang.Assert.isNull(a);
|
||||
Assert.isNull(a);
|
||||
}
|
||||
@Test
|
||||
public void notNullTest(){
|
||||
String a = null;
|
||||
cn.hutool.core.lang.Assert.isNull(a);
|
||||
Assert.isNull(a);
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void isTrueTest() {
|
||||
int i = 0;
|
||||
//noinspection ConstantConditions
|
||||
cn.hutool.core.lang.Assert.isTrue(i > 0, IllegalArgumentException::new);
|
||||
Assert.isTrue(i > 0, IllegalArgumentException::new);
|
||||
}
|
||||
|
||||
@Test(expected = IndexOutOfBoundsException.class)
|
||||
public void isTrueTest2() {
|
||||
int i = -1;
|
||||
//noinspection ConstantConditions
|
||||
cn.hutool.core.lang.Assert.isTrue(i >= 0, IndexOutOfBoundsException::new);
|
||||
Assert.isTrue(i >= 0, IndexOutOfBoundsException::new);
|
||||
}
|
||||
|
||||
@Test(expected = IndexOutOfBoundsException.class)
|
||||
|
@ -8,12 +8,12 @@ import org.junit.Test;
|
||||
|
||||
/**
|
||||
* ObjectId单元测试
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
public class ObjectIdTest {
|
||||
|
||||
|
||||
@Test
|
||||
public void distinctTest() {
|
||||
//生成10000个id测试是否重复
|
||||
@ -21,10 +21,10 @@ public class ObjectIdTest {
|
||||
for(int i = 0; i < 10000; i++) {
|
||||
set.add(ObjectId.next());
|
||||
}
|
||||
|
||||
|
||||
Assert.assertEquals(10000, set.size());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void nextTest() {
|
||||
|
@ -3,7 +3,7 @@ package cn.hutool.core.lang;
|
||||
import cn.hutool.core.collection.ConcurrentHashSet;
|
||||
import cn.hutool.core.exceptions.UtilException;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package cn.hutool.core.lang;
|
||||
|
||||
import cn.hutool.core.collection.ConcurrentHashSet;
|
||||
import cn.hutool.core.lang.id.UUID;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package cn.hutool.core.lang;
|
||||
|
||||
import cn.hutool.core.exceptions.ValidateException;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -9,25 +9,25 @@ import org.junit.Test;
|
||||
*
|
||||
*/
|
||||
public class CallerTest {
|
||||
|
||||
|
||||
@Test
|
||||
public void getCallerTest() {
|
||||
Class<?> caller = CallerUtil.getCaller();
|
||||
Assert.assertEquals(this.getClass(), caller);
|
||||
|
||||
|
||||
Class<?> caller0 = CallerUtil.getCaller(0);
|
||||
Assert.assertEquals(CallerUtil.class, caller0);
|
||||
|
||||
|
||||
Class<?> caller1 = CallerUtil.getCaller(1);
|
||||
Assert.assertEquals(this.getClass(), caller1);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void getCallerCallerTest() {
|
||||
Class<?> callerCaller = CallerTestClass.getCaller();
|
||||
Assert.assertEquals(this.getClass(), callerCaller);
|
||||
}
|
||||
|
||||
|
||||
private static class CallerTestClass{
|
||||
public static Class<?> getCaller(){
|
||||
return CallerUtil.getCallerCaller();
|
||||
|
@ -13,4 +13,4 @@ public class CallerUtilTest {
|
||||
final String fullCallerMethodName = CallerUtil.getCallerMethodName(true);
|
||||
Assert.assertEquals("cn.hutool.core.lang.caller.CallerUtilTest.getCallerMethodNameTest", fullCallerMethodName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,7 @@ public class TreeSearchTest {
|
||||
|
||||
@Test
|
||||
public void searchNode() {
|
||||
List<Tree<Long>> treeItems=TreeUtil.build(all_menu, 0L);
|
||||
List<Tree<Long>> treeItems= TreeUtil.build(all_menu, 0L);
|
||||
|
||||
Tree<Long> tree=treeItems.get(0);
|
||||
Tree<Long> searchResult=tree.getNode(3L);
|
||||
|
@ -14,22 +14,22 @@ import cn.hutool.core.lang.Console;
|
||||
*
|
||||
*/
|
||||
public class ArrangementTest {
|
||||
|
||||
|
||||
@Test
|
||||
public void arrangementTest() {
|
||||
long result = Arrangement.count(4, 2);
|
||||
Assert.assertEquals(12, result);
|
||||
|
||||
|
||||
result = Arrangement.count(4, 1);
|
||||
Assert.assertEquals(4, result);
|
||||
|
||||
|
||||
result = Arrangement.count(4, 0);
|
||||
Assert.assertEquals(1, result);
|
||||
|
||||
|
||||
long resultAll = Arrangement.countAll(4);
|
||||
Assert.assertEquals(64, resultAll);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void selectTest() {
|
||||
Arrangement arrangement = new Arrangement(new String[] { "1", "2", "3", "4" });
|
||||
@ -47,14 +47,14 @@ public class ArrangementTest {
|
||||
Assert.assertArrayEquals(new String[] {"4", "1"}, list.get(9));
|
||||
Assert.assertArrayEquals(new String[] {"4", "2"}, list.get(10));
|
||||
Assert.assertArrayEquals(new String[] {"4", "3"}, list.get(11));
|
||||
|
||||
|
||||
List<String[]> selectAll = arrangement.selectAll();
|
||||
Assert.assertEquals(Arrangement.countAll(4), selectAll.size());
|
||||
|
||||
|
||||
List<String[]> list2 = arrangement.select(0);
|
||||
Assert.assertEquals(1, list2.size());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void selectTest2() {
|
||||
|
@ -6,6 +6,7 @@ import cn.hutool.core.date.TimeInterval;
|
||||
import cn.hutool.core.exceptions.UtilException;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.lang.Snowflake;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
|
@ -21,4 +21,4 @@ public class A {
|
||||
t.print();
|
||||
}};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.thread.ExecutorBuilder;
|
||||
import cn.hutool.core.thread.ThreadFactoryBuilder;
|
||||
import cn.hutool.core.util.CharUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.cron.listener.TaskListener;
|
||||
import cn.hutool.cron.listener.TaskListenerManager;
|
||||
|
@ -11,7 +11,7 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* 定时任务表达式工具类
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
@ -19,7 +19,7 @@ public class CronPatternUtil {
|
||||
|
||||
/**
|
||||
* 列举指定日期之后(到开始日期对应年年底)内第一个匹配表达式的日期
|
||||
*
|
||||
*
|
||||
* @param pattern 表达式
|
||||
* @param start 起始时间
|
||||
* @param isMatchSecond 是否匹配秒
|
||||
@ -36,7 +36,7 @@ public class CronPatternUtil {
|
||||
|
||||
/**
|
||||
* 列举指定日期之后(到开始日期对应年年底)内所有匹配表达式的日期
|
||||
*
|
||||
*
|
||||
* @param patternStr 表达式字符串
|
||||
* @param start 起始时间
|
||||
* @param count 列举数量
|
||||
@ -49,7 +49,7 @@ public class CronPatternUtil {
|
||||
|
||||
/**
|
||||
* 列举指定日期范围内所有匹配表达式的日期
|
||||
*
|
||||
*
|
||||
* @param patternStr 表达式字符串
|
||||
* @param start 起始时间
|
||||
* @param end 结束时间
|
||||
@ -63,7 +63,7 @@ public class CronPatternUtil {
|
||||
|
||||
/**
|
||||
* 列举指定日期范围内所有匹配表达式的日期
|
||||
*
|
||||
*
|
||||
* @param patternStr 表达式字符串
|
||||
* @param start 起始时间
|
||||
* @param end 结束时间
|
||||
@ -77,7 +77,7 @@ public class CronPatternUtil {
|
||||
|
||||
/**
|
||||
* 列举指定日期范围内所有匹配表达式的日期
|
||||
*
|
||||
*
|
||||
* @param pattern 表达式
|
||||
* @param start 起始时间
|
||||
* @param end 结束时间
|
||||
|
@ -1,7 +1,7 @@
|
||||
package cn.hutool.cron;
|
||||
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.cron.pattern.CronPattern;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
@ -5,7 +5,7 @@ import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.hutool.cron.CronUtil;
|
||||
|
||||
public class AddAndRemoveMainTest {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
CronUtil.setMatchSecond(true);
|
||||
CronUtil.start(false);
|
||||
|
@ -3,7 +3,7 @@ package cn.hutool.cron.demo;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
|
||||
/**
|
||||
* 测试定时任务,当触发到定时的时间点时,执行doTest方法
|
||||
|
@ -7,7 +7,7 @@ import cn.hutool.core.thread.ThreadUtil;
|
||||
|
||||
/**
|
||||
* 测试定时任务,当触发到定时的时间点时,执行doTest方法
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
|
@ -9,7 +9,7 @@ import cn.hutool.core.map.MapUtil;
|
||||
/**
|
||||
* 动态实体类<br>
|
||||
* 提供了针对自身实体的增删改方法
|
||||
*
|
||||
*
|
||||
* @author Looly
|
||||
*
|
||||
*/
|
||||
@ -21,7 +21,7 @@ public class ActiveEntity extends Entity {
|
||||
// --------------------------------------------------------------- Static method start
|
||||
/**
|
||||
* 创建ActiveEntity
|
||||
*
|
||||
*
|
||||
* @return ActiveEntity
|
||||
*/
|
||||
public static ActiveEntity create() {
|
||||
@ -30,7 +30,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 创建ActiveEntity
|
||||
*
|
||||
*
|
||||
* @param tableName 表名
|
||||
* @return ActiveEntity
|
||||
*/
|
||||
@ -40,7 +40,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 将PO对象转为Entity
|
||||
*
|
||||
*
|
||||
* @param <T> Bean对象类型
|
||||
* @param bean Bean对象
|
||||
* @return ActiveEntity
|
||||
@ -51,7 +51,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 将PO对象转为ActiveEntity
|
||||
*
|
||||
*
|
||||
* @param <T> Bean对象类型
|
||||
* @param bean Bean对象
|
||||
* @param isToUnderlineCase 是否转换为下划线模式
|
||||
@ -64,7 +64,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 将PO对象转为ActiveEntity,并采用下划线法转换字段
|
||||
*
|
||||
*
|
||||
* @param <T> Bean对象类型
|
||||
* @param bean Bean对象
|
||||
* @return ActiveEntity
|
||||
@ -84,7 +84,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
*
|
||||
* @param tableName 表名
|
||||
*/
|
||||
public ActiveEntity(String tableName) {
|
||||
@ -93,7 +93,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
*
|
||||
* @param entity 非动态实体
|
||||
*/
|
||||
public ActiveEntity(Entity entity) {
|
||||
@ -102,7 +102,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
*
|
||||
* @param db {@link Db}
|
||||
* @param tableName 表名
|
||||
*/
|
||||
@ -113,7 +113,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
*
|
||||
* @param db {@link Db}
|
||||
* @param entity 非动态实体
|
||||
*/
|
||||
@ -123,17 +123,17 @@ public class ActiveEntity extends Entity {
|
||||
this.db = db;
|
||||
}
|
||||
// -------------------------------------------------------------------------- Constructor end
|
||||
|
||||
|
||||
@Override
|
||||
public ActiveEntity setTableName(String tableName) {
|
||||
return (ActiveEntity) super.setTableName(tableName);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ActiveEntity setFieldNames(Collection<String> fieldNames) {
|
||||
return (ActiveEntity) super.setFieldNames(fieldNames);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ActiveEntity setFieldNames(String... fieldNames) {
|
||||
return (ActiveEntity) super.setFieldNames(fieldNames);
|
||||
@ -153,27 +153,27 @@ public class ActiveEntity extends Entity {
|
||||
public ActiveEntity addFieldNames(String... fieldNames) {
|
||||
return (ActiveEntity) super.addFieldNames(fieldNames);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T> ActiveEntity parseBean(T bean) {
|
||||
return (ActiveEntity) super.parseBean(bean);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T> ActiveEntity parseBean(T bean, boolean isToUnderlineCase, boolean ignoreNullValue) {
|
||||
return (ActiveEntity) super.parseBean(bean, isToUnderlineCase, ignoreNullValue);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ActiveEntity set(String field, Object value) {
|
||||
return (ActiveEntity) super.set(field, value);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ActiveEntity setIgnoreNull(String field, Object value) {
|
||||
return (ActiveEntity) super.setIgnoreNull(field, value);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ActiveEntity clone() {
|
||||
return (ActiveEntity) super.clone();
|
||||
@ -182,7 +182,7 @@ public class ActiveEntity extends Entity {
|
||||
// -------------------------------------------------------------------------- CRUD start
|
||||
/**
|
||||
* 根据Entity中现有字段条件从数据库中增加一条数据
|
||||
*
|
||||
*
|
||||
* @return this
|
||||
*/
|
||||
public ActiveEntity add() {
|
||||
@ -196,7 +196,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 根据Entity中现有字段条件从数据库中加载一个Entity对象
|
||||
*
|
||||
*
|
||||
* @return this
|
||||
*/
|
||||
public ActiveEntity load() {
|
||||
@ -213,7 +213,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 根据现有Entity中的条件删除与之匹配的数据库记录
|
||||
*
|
||||
*
|
||||
* @return this
|
||||
*/
|
||||
public ActiveEntity del() {
|
||||
@ -227,7 +227,7 @@ public class ActiveEntity extends Entity {
|
||||
|
||||
/**
|
||||
* 根据现有Entity中的条件删除与之匹配的数据库记录
|
||||
*
|
||||
*
|
||||
* @param primaryKey 主键名
|
||||
* @return this
|
||||
*/
|
||||
|
@ -13,20 +13,20 @@ import java.util.List;
|
||||
|
||||
/**
|
||||
* SqlRunner线程安全测试
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
@Ignore
|
||||
public class ConcurentTest {
|
||||
|
||||
|
||||
private Db db;
|
||||
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
db = Db.use("test");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void findTest() {
|
||||
for(int i = 0; i < 10000; i++) {
|
||||
@ -40,7 +40,7 @@ public class ConcurentTest {
|
||||
Console.log(find);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//主线程关闭会导致连接池销毁,sleep避免此情况引起的问题
|
||||
ThreadUtil.sleep(5000);
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package cn.hutool.db;
|
||||
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import org.junit.Assert;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Ignore;
|
||||
|
@ -12,7 +12,7 @@ import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
* Oracle操作单元测试
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
|
@ -9,12 +9,12 @@ import cn.hutool.core.lang.Console;
|
||||
|
||||
/**
|
||||
* SQL Server操作单元测试
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
public class SqlServerTest {
|
||||
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void createTableTest() throws SQLException {
|
||||
|
@ -1,7 +1,7 @@
|
||||
package cn.hutool.extra.template.engine.enjoy;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.extra.template.Template;
|
||||
import cn.hutool.extra.template.TemplateConfig;
|
||||
|
@ -11,7 +11,7 @@ import java.util.Map;
|
||||
|
||||
/**
|
||||
* Rythm模板包装
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
@ -19,20 +19,20 @@ public class RythmTemplate extends AbstractTemplate implements Serializable {
|
||||
private static final long serialVersionUID = -132774960373894911L;
|
||||
|
||||
private final org.rythmengine.template.ITemplate rawTemplate;
|
||||
|
||||
|
||||
/**
|
||||
* 包装Rythm模板
|
||||
*
|
||||
*
|
||||
* @param template Rythm的模板对象 {@link org.rythmengine.template.ITemplate}
|
||||
* @return {@link RythmTemplate}
|
||||
*/
|
||||
public static RythmTemplate wrap(org.rythmengine.template.ITemplate template) {
|
||||
return (null == template) ? null : new RythmTemplate(template);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
*
|
||||
* @param rawTemplate Velocity模板对象
|
||||
*/
|
||||
public RythmTemplate(org.rythmengine.template.ITemplate rawTemplate) {
|
||||
|
@ -18,7 +18,7 @@ import java.util.Map;
|
||||
|
||||
/**
|
||||
* Thymeleaf模板实现
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
* @since 4.1.11
|
||||
*/
|
||||
@ -31,7 +31,7 @@ public class ThymeleafTemplate extends AbstractTemplate implements Serializable
|
||||
|
||||
/**
|
||||
* 包装Thymeleaf模板
|
||||
*
|
||||
*
|
||||
* @param engine Thymeleaf的模板引擎对象 {@link TemplateEngine}
|
||||
* @param template 模板路径或模板内容
|
||||
* @param charset 编码
|
||||
@ -43,7 +43,7 @@ public class ThymeleafTemplate extends AbstractTemplate implements Serializable
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
*
|
||||
* @param engine Thymeleaf的模板对象 {@link TemplateEngine}
|
||||
* @param template 模板路径或模板内容
|
||||
* @param charset 编码
|
||||
|
@ -9,7 +9,7 @@ import cn.hutool.log.StaticLog;
|
||||
|
||||
/**
|
||||
* 简单分词引擎工厂,用于根据用户引入的分词引擎jar,自动创建对应的引擎
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
@ -28,7 +28,7 @@ public class TokenizerFactory {
|
||||
|
||||
/**
|
||||
* 根据用户引入的分词引擎jar,自动创建对应的分词引擎对象
|
||||
*
|
||||
*
|
||||
* @return {@link TokenizerEngine}
|
||||
*/
|
||||
public static TokenizerEngine create() {
|
||||
@ -39,7 +39,7 @@ public class TokenizerFactory {
|
||||
|
||||
/**
|
||||
* 根据用户引入的分词引擎jar,自动创建对应的分词引擎对象
|
||||
*
|
||||
*
|
||||
* @return {@link TokenizerEngine}
|
||||
*/
|
||||
private static TokenizerEngine doCreate() {
|
||||
|
@ -9,7 +9,7 @@ import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Jsch工具类单元测试
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
@ -47,7 +47,7 @@ public class JschUtilTest {
|
||||
sftp.mkDirs("/opt/test/aaa/bbb");
|
||||
Console.log("OK");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void reconnectIfTimeoutTest() throws InterruptedException {
|
||||
|
@ -19,7 +19,7 @@ import cn.hutool.extra.template.engine.thymeleaf.ThymeleafEngine;
|
||||
|
||||
/**
|
||||
* Thymeleaf单元测试
|
||||
*
|
||||
*
|
||||
* @author looly
|
||||
*
|
||||
*/
|
||||
|
@ -14,12 +14,12 @@ public class Issue488Test {
|
||||
@Test
|
||||
public void toBeanTest() {
|
||||
String jsonStr = ResourceUtil.readUtf8Str("issue488.json");
|
||||
|
||||
|
||||
ResultSuccess<List<EmailAddress>> result = JSONUtil.toBean(jsonStr,
|
||||
new TypeReference<ResultSuccess<List<EmailAddress>>>() {}, false);
|
||||
|
||||
|
||||
Assert.assertEquals("https://graph.microsoft.com/beta/$metadata#Collection(microsoft.graph.emailAddress)", result.getContext());
|
||||
|
||||
|
||||
List<EmailAddress> adds = result.getValue();
|
||||
Assert.assertEquals("会议室101", adds.get(0).getName());
|
||||
Assert.assertEquals("MeetingRoom101@abc.com", adds.get(0).getAddress());
|
||||
|
@ -10,31 +10,31 @@ import cn.hutool.core.lang.TypeReference;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
|
||||
public class IssueIVMD5Test {
|
||||
|
||||
|
||||
/**
|
||||
* 测试泛型对象中有泛型字段的转换成功与否
|
||||
*/
|
||||
@Test
|
||||
public void toBeanTest() {
|
||||
String jsonStr = ResourceUtil.readUtf8Str("issueIVMD5.json");
|
||||
|
||||
|
||||
TypeReference<BaseResult<StudentInfo>> typeReference = new TypeReference<BaseResult<StudentInfo>>() {};
|
||||
BaseResult<StudentInfo> bean = JSONUtil.toBean(jsonStr, typeReference.getType(), false);
|
||||
|
||||
|
||||
StudentInfo data2 = bean.getData2();
|
||||
Assert.assertEquals("B4DDF491FDF34074AE7A819E1341CB6C", data2.getAccountId());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 测试泛型对象中有包含泛型字段的类型的转换成功与否,比如List<T> list
|
||||
*/
|
||||
@Test
|
||||
public void toBeanTest2() {
|
||||
String jsonStr = ResourceUtil.readUtf8Str("issueIVMD5.json");
|
||||
|
||||
|
||||
TypeReference<BaseResult<StudentInfo>> typeReference = new TypeReference<BaseResult<StudentInfo>>() {};
|
||||
BaseResult<StudentInfo> bean = JSONUtil.toBean(jsonStr, typeReference.getType(), false);
|
||||
|
||||
|
||||
List<StudentInfo> data = bean.getData();
|
||||
StudentInfo studentInfo = data.get(0);
|
||||
Assert.assertEquals("B4DDF491FDF34074AE7A819E1341CB6C", studentInfo.getAccountId());
|
||||
|
@ -10,7 +10,7 @@ import cn.hutool.log.level.WarnLog;
|
||||
|
||||
/**
|
||||
* 日志统一接口
|
||||
*
|
||||
*
|
||||
* @author Looly
|
||||
*
|
||||
*/
|
||||
|
@ -16,7 +16,7 @@ import cn.hutool.log.LogFactory;
|
||||
*
|
||||
*/
|
||||
public class JdkLogFactory extends LogFactory{
|
||||
|
||||
|
||||
public JdkLogFactory() {
|
||||
super("JDK Logging");
|
||||
readConfig();
|
||||
@ -31,7 +31,7 @@ public class JdkLogFactory extends LogFactory{
|
||||
public Log createLog(Class<?> clazz) {
|
||||
return new JdkLog(clazz);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 读取ClassPath下的logging.properties配置文件
|
||||
*/
|
||||
@ -42,7 +42,7 @@ public class JdkLogFactory extends LogFactory{
|
||||
System.err.println("[WARN] Can not find [logging.properties], use [%JRE_HOME%/lib/logging.properties] as default!");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
LogManager.getLogManager().readConfiguration(in);
|
||||
} catch (Exception e) {
|
||||
|
@ -12,7 +12,7 @@ import cn.hutool.core.map.TableMap;
|
||||
import cn.hutool.core.map.multi.RowKeyTable;
|
||||
import cn.hutool.core.map.multi.Table;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.core.util.URLUtil;
|
||||
import cn.hutool.poi.excel.cell.CellLocation;
|
||||
|
@ -16,15 +16,15 @@ import java.util.Map;
|
||||
|
||||
/**
|
||||
* Word中表格相关工具
|
||||
*
|
||||
*
|
||||
* @author Looly
|
||||
* @since 4.5.14
|
||||
*/
|
||||
public class TableUtil {
|
||||
|
||||
|
||||
/**
|
||||
* 创建空表,只有一行
|
||||
*
|
||||
*
|
||||
* @param doc {@link XWPFDocument}
|
||||
* @return {@link XWPFTable}
|
||||
*/
|
||||
@ -34,7 +34,7 @@ public class TableUtil {
|
||||
|
||||
/**
|
||||
* 创建表格并填充数据,默认表格
|
||||
*
|
||||
*
|
||||
* @param doc {@link XWPFDocument}
|
||||
* @param data 数据
|
||||
* @return {@link XWPFTable}
|
||||
@ -72,10 +72,10 @@ public class TableUtil {
|
||||
|
||||
return table;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 写一行数据
|
||||
*
|
||||
*
|
||||
* @param row 行
|
||||
* @param rowBean 行数据
|
||||
* @param isWriteKeyAsHead 如果为Map或者Bean,是否写标题
|
||||
@ -86,7 +86,7 @@ public class TableUtil {
|
||||
writeRow(row, (Iterable<?>) rowBean);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Map rowMap;
|
||||
if(rowBean instanceof Map) {
|
||||
rowMap = (Map) rowBean;
|
||||
@ -100,10 +100,10 @@ public class TableUtil {
|
||||
|
||||
writeRow(row, rowMap, isWriteKeyAsHead);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 写行数据
|
||||
*
|
||||
*
|
||||
* @param row 行
|
||||
* @param rowMap 行数据
|
||||
* @param isWriteKeyAsHead 是否写标题
|
||||
@ -122,7 +122,7 @@ public class TableUtil {
|
||||
|
||||
/**
|
||||
* 写行数据
|
||||
*
|
||||
*
|
||||
* @param row 行
|
||||
* @param rowData 行数据
|
||||
*/
|
||||
@ -139,7 +139,7 @@ public class TableUtil {
|
||||
/**
|
||||
* 获取或创建新行<br>
|
||||
* 存在则直接返回,不存在创建新的行
|
||||
*
|
||||
*
|
||||
* @param table {@link XWPFTable}
|
||||
* @param index 索引(行号),从0开始
|
||||
* @return {@link XWPFTableRow}
|
||||
@ -156,7 +156,7 @@ public class TableUtil {
|
||||
/**
|
||||
* 获取或创建新单元格<br>
|
||||
* 存在则直接返回,不存在创建新的单元格
|
||||
*
|
||||
*
|
||||
* @param row {@link XWPFTableRow} 行
|
||||
* @param index index 索引(列号),从0开始
|
||||
* @return {@link XWPFTableCell}
|
||||
|
@ -7,7 +7,7 @@ import org.junit.Test;
|
||||
import cn.hutool.core.lang.Console;
|
||||
|
||||
public class CellUtilTest {
|
||||
|
||||
|
||||
@Test
|
||||
@Ignore
|
||||
public void isDateTest() {
|
||||
|
@ -7,7 +7,7 @@ import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.poi.excel.cell.setters.EscapeStrCellSetter;
|
||||
import cn.hutool.poi.excel.style.StyleUtil;
|
||||
|
@ -5,7 +5,7 @@ import cn.hutool.setting.Setting;
|
||||
|
||||
/**
|
||||
* 全局的Profile配置中心
|
||||
*
|
||||
*
|
||||
* @author Looly
|
||||
*
|
||||
*/
|
||||
|
@ -19,7 +19,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
* <li>develop =》 ${classpath}/develop/db.setting</li>
|
||||
* <li>production =》 ${classpath}/production/db.setting</li>
|
||||
* </ol>
|
||||
*
|
||||
*
|
||||
* @author Looly
|
||||
*
|
||||
*/
|
||||
@ -48,7 +48,7 @@ public class Profile implements Serializable {
|
||||
|
||||
/**
|
||||
* 构造,编码UTF-8,不使用变量
|
||||
*
|
||||
*
|
||||
* @param profile 环境
|
||||
*/
|
||||
public Profile(String profile) {
|
||||
@ -57,7 +57,7 @@ public class Profile implements Serializable {
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
*
|
||||
* @param profile 环境
|
||||
* @param charset 编码
|
||||
* @param useVar 是否使用变量
|
||||
@ -71,7 +71,7 @@ public class Profile implements Serializable {
|
||||
|
||||
/**
|
||||
* 获取当前环境下的配置文件
|
||||
*
|
||||
*
|
||||
* @param name 文件名,如果没有扩展名,默认为.setting
|
||||
* @return 当前环境下配置文件
|
||||
*/
|
||||
@ -87,7 +87,7 @@ public class Profile implements Serializable {
|
||||
|
||||
/**
|
||||
* 设置环境
|
||||
*
|
||||
*
|
||||
* @param profile 环境
|
||||
* @return 自身
|
||||
*/
|
||||
@ -98,7 +98,7 @@ public class Profile implements Serializable {
|
||||
|
||||
/**
|
||||
* 设置编码
|
||||
*
|
||||
*
|
||||
* @param charset 编码
|
||||
* @return 自身
|
||||
*/
|
||||
@ -109,7 +109,7 @@ public class Profile implements Serializable {
|
||||
|
||||
/**
|
||||
* 设置是否使用变量
|
||||
*
|
||||
*
|
||||
* @param useVar 变量
|
||||
* @return 自身
|
||||
*/
|
||||
@ -120,7 +120,7 @@ public class Profile implements Serializable {
|
||||
|
||||
/**
|
||||
* 清空所有环境的配置文件
|
||||
*
|
||||
*
|
||||
* @return 自身
|
||||
*/
|
||||
public Profile clear() {
|
||||
@ -131,7 +131,7 @@ public class Profile implements Serializable {
|
||||
// -------------------------------------------------------------------------------- Private method start
|
||||
/**
|
||||
* 修正文件名
|
||||
*
|
||||
*
|
||||
* @param name 文件名
|
||||
* @return 修正后的文件名
|
||||
*/
|
||||
|
@ -9,7 +9,7 @@ import java.nio.ByteBuffer;
|
||||
public class AioClientTest {
|
||||
public static void main(String[] args) {
|
||||
AioClient client = new AioClient(new InetSocketAddress("localhost", 8899), new SimpleIoAction() {
|
||||
|
||||
|
||||
@Override
|
||||
public void doAction(AioSession session, ByteBuffer data) {
|
||||
if(data.hasRemaining()) {
|
||||
@ -19,10 +19,10 @@ public class AioClientTest {
|
||||
Console.log("OK");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
client.write(ByteBuffer.wrap("Hello".getBytes()));
|
||||
client.read();
|
||||
|
||||
|
||||
client.close();
|
||||
}
|
||||
}
|
||||
|
@ -9,23 +9,23 @@ import cn.hutool.log.StaticLog;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
public class AioServerTest {
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
|
||||
@SuppressWarnings("resource")
|
||||
AioServer aioServer = new AioServer(8899);
|
||||
aioServer.setIoAction(new SimpleIoAction() {
|
||||
|
||||
|
||||
@Override
|
||||
public void accept(AioSession session) {
|
||||
StaticLog.debug("【客户端】:{} 连接。", session.getRemoteAddress());
|
||||
session.write(BufferUtil.createUtf8("=== Welcome to Hutool socket server. ==="));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void doAction(AioSession session, ByteBuffer data) {
|
||||
Console.log(data);
|
||||
|
||||
|
||||
if(false == data.hasRemaining()) {
|
||||
StringBuilder response = StrUtil.builder()//
|
||||
.append("HTTP/1.1 200 OK\r\n")//
|
||||
|
@ -47,4 +47,4 @@ public class NioClientTest {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -47,4 +47,4 @@ public class NioServerTest {
|
||||
//将缓冲数据写入渠道,返回给客户端
|
||||
channel.write(BufferUtil.createUtf8(response));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ public class ClipboardMonitorTest {
|
||||
Console.log("1# {}", object);
|
||||
return contents;
|
||||
}, false);
|
||||
|
||||
|
||||
// 第二个监听
|
||||
ClipboardUtil.listen((clipboard, contents) -> {
|
||||
Object object = ClipboardUtil.getStr(contents);
|
||||
|
Loading…
Reference in New Issue
Block a user