mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
fix modifier bug
This commit is contained in:
parent
abdedf6822
commit
8e8518c8d1
@ -12,12 +12,14 @@
|
|||||||
* 【http 】 UserAgentUtil增加miniProgram判断(issue#1475@Github)
|
* 【http 】 UserAgentUtil增加miniProgram判断(issue#1475@Github)
|
||||||
* 【db 】 增加Ignite数据库驱动识别
|
* 【db 】 增加Ignite数据库驱动识别
|
||||||
* 【core 】 DateUtil.parse支持带毫秒的UTC时间
|
* 【core 】 DateUtil.parse支持带毫秒的UTC时间
|
||||||
|
* 【core 】 IdcardUtil.Idcard增加toString(pr#1487@Github)
|
||||||
|
|
||||||
### Bug修复
|
### Bug修复
|
||||||
* 【core 】 修复IoUtil.readBytes的FileInputStream中isClose参数失效问题(issue#I3B7UD@Gitee)
|
* 【core 】 修复IoUtil.readBytes的FileInputStream中isClose参数失效问题(issue#I3B7UD@Gitee)
|
||||||
* 【core 】 修复DataUnit中KB不大写的问题
|
* 【core 】 修复DataUnit中KB不大写的问题
|
||||||
* 【json 】 修复JSONUtil.getByPath类型错误问题(issue#I3BSDF@Gitee)
|
* 【json 】 修复JSONUtil.getByPath类型错误问题(issue#I3BSDF@Gitee)
|
||||||
* 【core 】 修复BeanUtil.toBean提供null未返回null的问题(issue#I3BQPV@Gitee)
|
* 【core 】 修复BeanUtil.toBean提供null未返回null的问题(issue#I3BQPV@Gitee)
|
||||||
|
* 【core 】 修复ModifierUtil#modifiersToInt中逻辑判断问题(issue#1486@Github)
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -719,5 +719,15 @@ public class IdcardUtil {
|
|||||||
public Integer getGender() {
|
public Integer getGender() {
|
||||||
return this.gender;
|
return this.gender;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Idcard{" +
|
||||||
|
"provinceCode='" + provinceCode + '\'' +
|
||||||
|
", cityCode='" + cityCode + '\'' +
|
||||||
|
", birthDate=" + birthDate +
|
||||||
|
", gender=" + gender +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import java.lang.reflect.Modifier;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 修饰符工具类
|
* 修饰符工具类
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
* @since 4.0.5
|
* @since 4.0.5
|
||||||
*/
|
*/
|
||||||
@ -15,7 +15,7 @@ public class ModifierUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 修饰符枚举
|
* 修饰符枚举
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
* @since 4.0.5
|
* @since 4.0.5
|
||||||
*/
|
*/
|
||||||
@ -66,7 +66,7 @@ public class ModifierUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true)
|
* 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true)
|
||||||
*
|
*
|
||||||
* @param clazz 类
|
* @param clazz 类
|
||||||
* @param modifierTypes 修饰符枚举
|
* @param modifierTypes 修饰符枚举
|
||||||
* @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false
|
* @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false
|
||||||
@ -80,7 +80,7 @@ public class ModifierUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true)
|
* 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true)
|
||||||
*
|
*
|
||||||
* @param constructor 构造方法
|
* @param constructor 构造方法
|
||||||
* @param modifierTypes 修饰符枚举
|
* @param modifierTypes 修饰符枚举
|
||||||
* @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false
|
* @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false
|
||||||
@ -94,7 +94,7 @@ public class ModifierUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true)
|
* 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true)
|
||||||
*
|
*
|
||||||
* @param method 方法
|
* @param method 方法
|
||||||
* @param modifierTypes 修饰符枚举
|
* @param modifierTypes 修饰符枚举
|
||||||
* @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false
|
* @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false
|
||||||
@ -105,10 +105,10 @@ public class ModifierUtil {
|
|||||||
}
|
}
|
||||||
return 0 != (method.getModifiers() & modifiersToInt(modifierTypes));
|
return 0 != (method.getModifiers() & modifiersToInt(modifierTypes));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true)
|
* 是否同时存在一个或多个修饰符(可能有多个修饰符,如果有指定的修饰符则返回true)
|
||||||
*
|
*
|
||||||
* @param field 字段
|
* @param field 字段
|
||||||
* @param modifierTypes 修饰符枚举
|
* @param modifierTypes 修饰符枚举
|
||||||
* @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false
|
* @return 是否有指定修饰符,如果有返回true,否则false,如果提供参数为null返回false
|
||||||
@ -119,10 +119,10 @@ public class ModifierUtil {
|
|||||||
}
|
}
|
||||||
return 0 != (field.getModifiers() & modifiersToInt(modifierTypes));
|
return 0 != (field.getModifiers() & modifiersToInt(modifierTypes));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是Public字段
|
* 是否是Public字段
|
||||||
*
|
*
|
||||||
* @param field 字段
|
* @param field 字段
|
||||||
* @return 是否是Public
|
* @return 是否是Public
|
||||||
*/
|
*/
|
||||||
@ -132,7 +132,7 @@ public class ModifierUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是Public方法
|
* 是否是Public方法
|
||||||
*
|
*
|
||||||
* @param method 方法
|
* @param method 方法
|
||||||
* @return 是否是Public
|
* @return 是否是Public
|
||||||
*/
|
*/
|
||||||
@ -142,7 +142,7 @@ public class ModifierUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是Public类
|
* 是否是Public类
|
||||||
*
|
*
|
||||||
* @param clazz 类
|
* @param clazz 类
|
||||||
* @return 是否是Public
|
* @return 是否是Public
|
||||||
*/
|
*/
|
||||||
@ -152,17 +152,17 @@ public class ModifierUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是Public构造
|
* 是否是Public构造
|
||||||
*
|
*
|
||||||
* @param constructor 构造
|
* @param constructor 构造
|
||||||
* @return 是否是Public
|
* @return 是否是Public
|
||||||
*/
|
*/
|
||||||
public static boolean isPublic(Constructor<?> constructor) {
|
public static boolean isPublic(Constructor<?> constructor) {
|
||||||
return hasModifier(constructor, ModifierType.PUBLIC);
|
return hasModifier(constructor, ModifierType.PUBLIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是static字段
|
* 是否是static字段
|
||||||
*
|
*
|
||||||
* @param field 字段
|
* @param field 字段
|
||||||
* @return 是否是static
|
* @return 是否是static
|
||||||
* @since 4.0.8
|
* @since 4.0.8
|
||||||
@ -173,7 +173,7 @@ public class ModifierUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是static方法
|
* 是否是static方法
|
||||||
*
|
*
|
||||||
* @param method 方法
|
* @param method 方法
|
||||||
* @return 是否是static
|
* @return 是否是static
|
||||||
* @since 4.0.8
|
* @since 4.0.8
|
||||||
@ -184,7 +184,7 @@ public class ModifierUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否是static类
|
* 是否是static类
|
||||||
*
|
*
|
||||||
* @param clazz 类
|
* @param clazz 类
|
||||||
* @return 是否是static
|
* @return 是否是static
|
||||||
* @since 4.0.8
|
* @since 4.0.8
|
||||||
@ -192,7 +192,7 @@ public class ModifierUtil {
|
|||||||
public static boolean isStatic(Class<?> clazz) {
|
public static boolean isStatic(Class<?> clazz) {
|
||||||
return hasModifier(clazz, ModifierType.STATIC);
|
return hasModifier(clazz, ModifierType.STATIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------------- Private method start
|
//-------------------------------------------------------------------------------------------------------- Private method start
|
||||||
/**
|
/**
|
||||||
* 多个修饰符做“与”操作,表示同时存在多个修饰符
|
* 多个修饰符做“与”操作,表示同时存在多个修饰符
|
||||||
@ -202,7 +202,7 @@ public class ModifierUtil {
|
|||||||
private static int modifiersToInt(ModifierType... modifierTypes) {
|
private static int modifiersToInt(ModifierType... modifierTypes) {
|
||||||
int modifier = modifierTypes[0].getValue();
|
int modifier = modifierTypes[0].getValue();
|
||||||
for(int i = 1; i < modifierTypes.length; i++) {
|
for(int i = 1; i < modifierTypes.length; i++) {
|
||||||
modifier &= modifierTypes[i].getValue();
|
modifier |= modifierTypes[i].getValue();
|
||||||
}
|
}
|
||||||
return modifier;
|
return modifier;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,21 @@
|
|||||||
|
package cn.hutool.core.util;
|
||||||
|
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
public class ModifierUtilTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hasModifierTest() throws NoSuchMethodException {
|
||||||
|
Method method = ModifierUtilTest.class.getDeclaredMethod("ddd");
|
||||||
|
Assert.assertTrue(ModifierUtil.hasModifier(method, ModifierUtil.ModifierType.PRIVATE));
|
||||||
|
Assert.assertTrue(ModifierUtil.hasModifier(method,
|
||||||
|
ModifierUtil.ModifierType.PRIVATE,
|
||||||
|
ModifierUtil.ModifierType.STATIC)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
private static void ddd() {
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user