add field

This commit is contained in:
Looly
2020-09-15 12:54:31 +08:00
parent 13431497ae
commit 37b051a46c
13 changed files with 417 additions and 71 deletions

View File

@@ -1005,20 +1005,14 @@ public class FileUtil extends PathUtil {
}
/**
* 修改文件或目录的文件名,不变更路径,只是简单修改文件名<br>
* 重命名有两种模式:<br>
* 1、isRetainExt为true时保留原扩展名
* 修改文件或目录的文件名,不变更路径,只是简单修改文件名,不保留扩展名。<br>
*
* <pre>
* FileUtil.rename(file, "aaa", true) xx/xx.png =》xx/aaa.png
* </pre>
*
* <pre>
* FileUtil.rename(file, "aaa.jpg", false) xx/xx.png =》xx/aaa.jpg
* FileUtil.rename(file, "aaa.png", true) xx/xx.png =》xx/aaa.png
* </pre>
*
* @param file 被修改的文件
* @param newName 新的文件名,包括扩展名
* @param newName 新的文件名,如需扩展名,需自行在此参数加上,原文件名的扩展名不会被保留
* @param isOverride 是否覆盖目标文件
* @return 目标文件
* @since 5.3.6
@@ -1035,6 +1029,7 @@ public class FileUtil extends PathUtil {
* <pre>
* FileUtil.rename(file, "aaa", true) xx/xx.png =》xx/aaa.png
* </pre>
*
* <p>
* 2、isRetainExt为false时不保留原扩展名需要在newName中
*

View File

@@ -0,0 +1,18 @@
package cn.hutool.core.lang.generator;
/**
* 生成器泛型接口<br>
* 通过实现此接口可以自定义生成对象的策略
*
* @param <T> 生成对象类型
* @since 5.4.3
*/
public interface Generator<T> {
/**
* 生成新的对象
*
* @return 新的对象
*/
T next();
}

View File

@@ -0,0 +1,28 @@
package cn.hutool.core.lang.generator;
import cn.hutool.core.util.ReflectUtil;
/**
* 对象生成器通过指定对象的Class类型调用next方法时生成新的对象。
*
* @param <T> 对象类型
* @author looly
* @since 5.4.3
*/
public class ObjectGenerator<T> implements Generator<T> {
private final Class<T> clazz;
/**
* 构造
* @param clazz 对象类型
*/
public ObjectGenerator(Class<T> clazz) {
this.clazz = clazz;
}
@Override
public T next() {
return ReflectUtil.newInstanceIfPossible(this.clazz);
}
}

View File

@@ -0,0 +1,16 @@
package cn.hutool.core.lang.generator;
import cn.hutool.core.lang.ObjectId;
/**
* ObjectId生成器
*
* @author looly
* @since 5.4.3
*/
public class ObjectIdGenerator implements Generator<String> {
@Override
public String next() {
return ObjectId.next();
}
}

View File

@@ -0,0 +1,38 @@
package cn.hutool.core.lang.generator;
import cn.hutool.core.lang.Snowflake;
/**
* Snowflake生成器<br>
* 注意,默认此生成器必须单例使用,否则会有重复<br>
* 默认构造的终端ID和数据中心ID都为0不适用于分布式环境。
*
* @author looly
* @since 5.4.3
*/
public class SnowflakeGenerator implements Generator<Long> {
private final Snowflake snowflake;
/**
* 构造
*/
public SnowflakeGenerator() {
this(0, 0);
}
/**
* 构造
*
* @param workerId 终端ID
* @param dataCenterId 数据中心ID
*/
public SnowflakeGenerator(long workerId, long dataCenterId) {
snowflake = new Snowflake(workerId, dataCenterId);
}
@Override
public Long next() {
return this.snowflake.nextId();
}
}

View File

@@ -0,0 +1,16 @@
package cn.hutool.core.lang.generator;
import cn.hutool.core.util.IdUtil;
/**
* UUID生成器
*
* @author looly
* @since 5.4.3
*/
public class UUIDGenerator implements Generator<String> {
@Override
public String next() {
return IdUtil.fastUUID();
}
}

View File

@@ -0,0 +1,7 @@
/**
* 提供生成器接口及相关封装
*
* @author looly
*
*/
package cn.hutool.core.lang.generator;

View File

@@ -1,10 +1,9 @@
package cn.hutool.core.date;
import cn.hutool.core.date.BetweenFormater.Level;
import org.junit.Assert;
import org.junit.Test;
import cn.hutool.core.date.BetweenFormater.Level;
public class BetweenFormaterTest {
@Test