mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
change parser
This commit is contained in:
@@ -251,7 +251,7 @@ public class PropDesc {
|
||||
* @param value 属性值,可以为任意类型
|
||||
* @param ignoreNull 是否忽略{@code null}值,true表示忽略
|
||||
* @param ignoreError 是否忽略错误,包括转换错误和注入错误
|
||||
* @param override 是否覆盖目标值,如果不覆盖,会先读取bean的值,非{@code null}则写,否则忽略。如果覆盖,则不判断直接写
|
||||
* @param override 是否覆盖目标值,如果不覆盖,会先读取bean的值,{@code null}则写,否则忽略。如果覆盖,则不判断直接写
|
||||
* @return this
|
||||
* @since 5.7.17
|
||||
*/
|
||||
|
@@ -1,5 +1,7 @@
|
||||
package cn.hutool.core.date;
|
||||
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
|
||||
import java.time.DayOfWeek;
|
||||
import java.util.Calendar;
|
||||
|
||||
@@ -48,6 +50,12 @@ public enum Week {
|
||||
SATURDAY(Calendar.SATURDAY);
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
/**
|
||||
* Weeks aliases.
|
||||
*/
|
||||
private static final String[] ALIASES = {"sun", "mon", "tue", "wed", "thu", "fri", "sat"};
|
||||
private static final Week[] ENUMS = Week.values();
|
||||
|
||||
/**
|
||||
* 星期对应{@link Calendar} 中的Week值
|
||||
*/
|
||||
@@ -71,6 +79,20 @@ public enum Week {
|
||||
return this.value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取ISO8601规范的int值,from 1 (Monday) to 7 (Sunday).
|
||||
*
|
||||
* @return ISO8601规范的int值
|
||||
* @since 5.8.0
|
||||
*/
|
||||
public int getIso8601Value(){
|
||||
int iso8601IntValue = getValue() -1;
|
||||
if(0 == iso8601IntValue){
|
||||
iso8601IntValue = 7;
|
||||
}
|
||||
return iso8601IntValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换为中文名
|
||||
*
|
||||
@@ -109,6 +131,16 @@ public enum Week {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 转换为{@link DayOfWeek}
|
||||
*
|
||||
* @return {@link DayOfWeek}
|
||||
* @since 5.8.0
|
||||
*/
|
||||
public DayOfWeek toJdkDayOfWeek() {
|
||||
return DayOfWeek.of(getIso8601Value());
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 {@link Calendar}星期相关值转换为Week枚举对象<br>
|
||||
*
|
||||
@@ -123,24 +155,26 @@ public enum Week {
|
||||
* @see #SATURDAY
|
||||
*/
|
||||
public static Week of(int calendarWeekIntValue) {
|
||||
switch (calendarWeekIntValue) {
|
||||
case Calendar.SUNDAY:
|
||||
return SUNDAY;
|
||||
case Calendar.MONDAY:
|
||||
return MONDAY;
|
||||
case Calendar.TUESDAY:
|
||||
return TUESDAY;
|
||||
case Calendar.WEDNESDAY:
|
||||
return WEDNESDAY;
|
||||
case Calendar.THURSDAY:
|
||||
return THURSDAY;
|
||||
case Calendar.FRIDAY:
|
||||
return FRIDAY;
|
||||
case Calendar.SATURDAY:
|
||||
return SATURDAY;
|
||||
default:
|
||||
return null;
|
||||
if (calendarWeekIntValue >= ENUMS.length || calendarWeekIntValue < 0) {
|
||||
return null;
|
||||
}
|
||||
return ENUMS[calendarWeekIntValue];
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析别名为Week对象,别名如:sun或者SUNDAY,不区分大小写
|
||||
*
|
||||
* @param name 别名值
|
||||
* @return 周int值
|
||||
* @throws IllegalArgumentException 如果别名无对应的枚举,抛出此异常
|
||||
* @since 5.8.0
|
||||
*/
|
||||
public static Week of(String name) throws IllegalArgumentException {
|
||||
Week of = of(ArrayUtil.indexOfIgnoreCase(ALIASES, name));
|
||||
if (null == of) {
|
||||
of = Week.valueOf(name.toUpperCase());
|
||||
}
|
||||
return of;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -188,7 +188,7 @@ public class Range<T> implements Iterable<T>, Iterator<T>, Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置{@link Range}
|
||||
* 重置Range
|
||||
*
|
||||
* @return this
|
||||
*/
|
||||
|
@@ -3,7 +3,7 @@ package cn.hutool.core.lang.mutable;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
|
||||
/**
|
||||
* 可变 <code>long</code> 类型
|
||||
* 可变 {@code long} 类型
|
||||
*
|
||||
* @see Long
|
||||
* @since 3.0.1
|
||||
@@ -21,6 +21,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param value 值
|
||||
*/
|
||||
public MutableLong(final long value) {
|
||||
@@ -29,6 +30,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param value 值
|
||||
*/
|
||||
public MutableLong(final Number value) {
|
||||
@@ -37,6 +39,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param value String值
|
||||
* @throws NumberFormatException 数字转换错误
|
||||
*/
|
||||
@@ -51,6 +54,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
||||
|
||||
/**
|
||||
* 设置值
|
||||
*
|
||||
* @param value 值
|
||||
*/
|
||||
public void set(final long value) {
|
||||
@@ -63,8 +67,10 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* 值+1
|
||||
*
|
||||
* @return this
|
||||
*/
|
||||
public MutableLong increment() {
|
||||
@@ -74,6 +80,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
||||
|
||||
/**
|
||||
* 值减一
|
||||
*
|
||||
* @return this
|
||||
*/
|
||||
public MutableLong decrement() {
|
||||
@@ -82,8 +89,10 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* 增加值
|
||||
*
|
||||
* @param operand 被增加的值
|
||||
* @return this
|
||||
*/
|
||||
@@ -94,6 +103,7 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
||||
|
||||
/**
|
||||
* 增加值
|
||||
*
|
||||
* @param operand 被增加的值,非空
|
||||
* @return this
|
||||
* @throws NullPointerException if the object is null
|
||||
@@ -148,16 +158,17 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* 相等需同时满足如下条件:
|
||||
* <ol>
|
||||
* <li>非空</li>
|
||||
* <li>类型为 {@link MutableLong}</li>
|
||||
* <li>类型为 MutableLong</li>
|
||||
* <li>值相等</li>
|
||||
* </ol>
|
||||
*
|
||||
* @param obj 比对的对象
|
||||
* @return 相同返回<code>true</code>,否则 <code>false</code>
|
||||
* @return 相同返回<code>true</code>,否则 {@code false}
|
||||
*/
|
||||
@Override
|
||||
public boolean equals(final Object obj) {
|
||||
@@ -173,10 +184,11 @@ public class MutableLong extends Number implements Comparable<MutableLong>, Muta
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* 比较
|
||||
*
|
||||
* @param other 其它 {@link MutableLong} 对象
|
||||
* @param other 其它 MutableLong 对象
|
||||
* @return x==y返回0,x<y返回-1,x>y返回1
|
||||
*/
|
||||
@Override
|
||||
|
@@ -1,5 +1,10 @@
|
||||
package cn.hutool.core.util;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.func.Func1;
|
||||
import cn.hutool.core.lang.func.LambdaUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
@@ -9,11 +14,6 @@ import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.func.Func1;
|
||||
import cn.hutool.core.lang.func.LambdaUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
|
||||
/**
|
||||
* 枚举工具类
|
||||
*
|
||||
@@ -56,7 +56,7 @@ public class EnumUtil {
|
||||
}
|
||||
|
||||
/**
|
||||
* 字符串转枚举,调用{@link Enum#valueOf(Class, String)}
|
||||
* 获取给定位置的枚举值
|
||||
*
|
||||
* @param <E> 枚举类型泛型
|
||||
* @param enumClass 枚举类
|
||||
|
50
hutool-core/src/test/java/cn/hutool/core/date/WeekTest.java
Normal file
50
hutool-core/src/test/java/cn/hutool/core/date/WeekTest.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package cn.hutool.core.date;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.time.DayOfWeek;
|
||||
|
||||
public class WeekTest {
|
||||
|
||||
@Test
|
||||
public void ofTest(){
|
||||
//测试别名及大小写
|
||||
Assert.assertEquals(Week.SUNDAY, Week.of("sun"));
|
||||
Assert.assertEquals(Week.SUNDAY, Week.of("SUN"));
|
||||
Assert.assertEquals(Week.SUNDAY, Week.of("Sun"));
|
||||
//测试全名及大小写
|
||||
Assert.assertEquals(Week.SUNDAY, Week.of("sunday"));
|
||||
Assert.assertEquals(Week.SUNDAY, Week.of("Sunday"));
|
||||
Assert.assertEquals(Week.SUNDAY, Week.of("SUNDAY"));
|
||||
|
||||
Assert.assertEquals(Week.MONDAY, Week.of("Mon"));
|
||||
Assert.assertEquals(Week.MONDAY, Week.of("Monday"));
|
||||
|
||||
Assert.assertEquals(Week.TUESDAY, Week.of("tue"));
|
||||
Assert.assertEquals(Week.TUESDAY, Week.of("tuesday"));
|
||||
|
||||
Assert.assertEquals(Week.WEDNESDAY, Week.of("wed"));
|
||||
Assert.assertEquals(Week.WEDNESDAY, Week.of("WEDNESDAY"));
|
||||
|
||||
Assert.assertEquals(Week.THURSDAY, Week.of("thu"));
|
||||
Assert.assertEquals(Week.THURSDAY, Week.of("THURSDAY"));
|
||||
|
||||
Assert.assertEquals(Week.FRIDAY, Week.of("fri"));
|
||||
Assert.assertEquals(Week.FRIDAY, Week.of("FRIDAY"));
|
||||
|
||||
Assert.assertEquals(Week.SATURDAY, Week.of("sat"));
|
||||
Assert.assertEquals(Week.SATURDAY, Week.of("SATURDAY"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toJdkDayOfWeekTest(){
|
||||
Assert.assertEquals(DayOfWeek.MONDAY, Week.MONDAY.toJdkDayOfWeek());
|
||||
Assert.assertEquals(DayOfWeek.TUESDAY, Week.TUESDAY.toJdkDayOfWeek());
|
||||
Assert.assertEquals(DayOfWeek.WEDNESDAY, Week.WEDNESDAY.toJdkDayOfWeek());
|
||||
Assert.assertEquals(DayOfWeek.THURSDAY, Week.THURSDAY.toJdkDayOfWeek());
|
||||
Assert.assertEquals(DayOfWeek.FRIDAY, Week.FRIDAY.toJdkDayOfWeek());
|
||||
Assert.assertEquals(DayOfWeek.SATURDAY, Week.SATURDAY.toJdkDayOfWeek());
|
||||
Assert.assertEquals(DayOfWeek.SUNDAY, Week.SUNDAY.toJdkDayOfWeek());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user