| 程序包 | 说明 |
|---|---|
| com.github.jarvisframework.tool.core.annotation | |
| com.github.jarvisframework.tool.core.io | |
| com.github.jarvisframework.tool.core.lang | |
| com.github.jarvisframework.tool.core.util |
| 限定符和类型 | 方法和说明 |
|---|---|
static <T> T |
AnnotationUtils.getAnnotationValue(AnnotatedElement annotationEle,
Class<? extends Annotation> annotationType)
获取指定注解默认值
如果无指定的属性方法返回null |
static <T> T |
AnnotationUtils.getAnnotationValue(AnnotatedElement annotationEle,
Class<? extends Annotation> annotationType,
String propertyName)
获取指定注解属性的值
如果无指定的属性方法返回null |
static Map<String,Object> |
AnnotationUtils.getAnnotationValueMap(AnnotatedElement annotationEle,
Class<? extends Annotation> annotationType)
获取指定注解中所有属性值
如果无指定的属性方法返回null |
| 限定符和类型 | 方法和说明 |
|---|---|
static <T> T |
IOUtils.readObj(InputStream in)
从流中读取对象,即对象的反序列化
注意!!!
|
static <T> T |
IOUtils.readObj(InputStream in,
Class<T> clazz)
从流中读取对象,即对象的反序列化,读取后不关闭流
注意!!!
|
static <T> T |
IOUtils.readObj(ValidateObjectInputStream in,
Class<T> clazz)
从流中读取对象,即对象的反序列化,读取后不关闭流
此方法使用了
ValidateObjectInputStream中的黑白名单方式过滤类,用于避免反序列化漏洞通过构造 ValidateObjectInputStream,调用ValidateObjectInputStream.accept(Class[])
或者ValidateObjectInputStream.refuse(Class[])方法添加可以被序列化的类或者禁止序列化的类。 |
| 限定符和类型 | 方法和说明 |
|---|---|
static void |
JarClassLoader.loadJar(URLClassLoader loader,
File jarFile)
加载Jar文件到指定loader中
|
| 限定符和类型 | 方法和说明 |
|---|---|
private static void |
ZipUtils.addDir(String path,
ZipOutputStream out)
在压缩包中新建目录
|
private static void |
ZipUtils.addFile(File file,
String path,
ZipOutputStream out)
添加文件到压缩包
|
private static void |
ZipUtils.addFile(InputStream in,
String path,
ZipOutputStream out)
添加文件流到压缩包,添加后关闭流
|
static String |
UrlUtils.decode(String url)
解码URL
将%开头的16进制表示的内容解码。 |
static String |
UrlUtils.decode(String content,
String charset)
解码application/x-www-form-urlencoded字符
将%开头的16进制表示的内容解码。 |
static String |
UrlUtils.encode(String url)
编码URL,默认使用UTF-8编码
将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头。 |
static String |
UrlUtils.encode(String url,
String charset)
编码URL字符为 application/x-www-form-urlencoded
将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头。 |
static String |
UrlUtils.encodeAll(String url,
Charset charset)
编码URL
将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头。 |
static String |
UrlUtils.encodeQuery(String url)
编码URL,默认使用UTF-8编码
将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头。 |
static String |
UrlUtils.encodeQuery(String url,
String charset)
编码URL
将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头。 |
static Object |
ReflectUtils.getFieldValue(Object obj,
Field field)
获取字段值
|
static Object |
ReflectUtils.getFieldValue(Object obj,
String fieldName)
获取字段值
|
static Object |
ReflectUtils.getStaticFieldValue(Field field)
获取静态字段值
|
static byte[] |
ZipUtils.gzip(byte[] buf)
Gzip压缩处理
|
static byte[] |
ZipUtils.gzip(File file)
Gzip压缩文件
|
static byte[] |
ZipUtils.gzip(InputStream in)
Gzip压缩文件
|
static byte[] |
ZipUtils.gzip(InputStream in,
int length)
Gzip压缩文件
|
static byte[] |
ZipUtils.gzip(String content,
String charset)
Gzip压缩处理
|
static <T> T |
ReflectUtils.invoke(Object obj,
Method method,
Object... args)
执行方法
对于用户传入参数会做必要检查,包括:
1、忽略多余的参数
2、参数不够补齐默认值
3、传入参数为null,但是目标参数类型为原始类型,做转换
|
static <T> T |
ReflectUtils.invoke(Object obj,
String methodName,
Object... args)
执行对象中指定方法
|
static <T> T |
ReflectUtils.invokeStatic(Method method,
Object... args)
执行静态方法
|
static <T> T |
ReflectUtils.invokeWithCheck(Object obj,
Method method,
Object... args)
执行方法
执行前要检查给定参数: 1. |
static Class<?> |
ClassLoaderUtils.loadClass(String name)
加载类,通过传入类的字符串,返回其对应的类名,使用默认ClassLoader并初始化类(调用static模块内容和初始化static属性)
扩展 Class.forName(String, boolean, ClassLoader)方法,支持以下几类类名的加载:
1、原始类型,例如:int
2、数组类型,例如:int[]、Long[]、String[]
3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
|
static Class<?> |
ClassLoaderUtils.loadClass(String name,
boolean isInitialized)
加载类,通过传入类的字符串,返回其对应的类名,使用默认ClassLoader
扩展 Class.forName(String, boolean, ClassLoader)方法,支持以下几类类名的加载:
1、原始类型,例如:int
2、数组类型,例如:int[]、Long[]、String[]
3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
|
static Class<?> |
ClassLoaderUtils.loadClass(String name,
ClassLoader classLoader,
boolean isInitialized)
加载类,通过传入类的字符串,返回其对应的类名
此方法支持缓存,第一次被加载的类之后会读取缓存中的类 加载失败的原因可能是此类不存在或其关联引用类不存在 扩展 Class.forName(String, boolean, ClassLoader)方法,支持以下几类类名的加载:
1、原始类型,例如:int
2、数组类型,例如:int[]、Long[]、String[]
3、内部类,例如:java.lang.Thread.State会被转为java.lang.Thread$State加载
|
static <T> T |
ReflectUtils.newInstance(Class<T> clazz,
Object... params)
实例化对象
|
static <T> T |
ReflectUtils.newInstance(String clazz)
实例化对象
|
static void |
ReflectUtils.setFieldValue(Object obj,
Field field,
Object value)
设置字段值
|
static void |
ReflectUtils.setFieldValue(Object obj,
String fieldName,
Object value)
设置字段值
|
static URI |
UrlUtils.toURI(String location)
转字符串为URI
|
static URI |
UrlUtils.toURI(String location,
boolean isEncode)
转字符串为URI
|
static URI |
UrlUtils.toURI(URL url)
转URL为URI
|
static URI |
UrlUtils.toURI(URL url,
boolean isEncode)
转URL为URI
|
static byte[] |
ZipUtils.unGzip(byte[] buf)
Gzip解压处理
|
static String |
ZipUtils.unGzip(byte[] buf,
String charset)
Gzip解压缩处理
|
static byte[] |
ZipUtils.unGzip(InputStream in)
Gzip解压处理
|
static byte[] |
ZipUtils.unGzip(InputStream in,
int length)
Gzip解压处理
|
static File |
ZipUtils.unzip(File zipFile)
解压到文件名相同的目录中,使用UTF-8编码
|
static File |
ZipUtils.unzip(File zipFile,
Charset charset)
解压到文件名相同的目录中
|
static File |
ZipUtils.unzip(File zipFile,
File outFile)
解压,默认使用UTF-8编码
|
static File |
ZipUtils.unzip(File zipFile,
File outFile,
Charset charset)
解压
|
static File |
ZipUtils.unzip(InputStream in,
File outFile,
Charset charset)
解压
ZIP条目不使用高速缓冲。 |
static File |
ZipUtils.unzip(String zipFilePath)
解压到文件名相同的目录中,默认编码UTF-8
|
static File |
ZipUtils.unzip(String zipFilePath,
Charset charset)
解压到文件名相同的目录中
|
static File |
ZipUtils.unzip(String zipFilePath,
String outFileDir)
解压,默认UTF-8编码
|
static File |
ZipUtils.unzip(String zipFilePath,
String outFileDir,
Charset charset)
解压
|
static File |
ZipUtils.unzip(ZipInputStream zipStream,
File outFile)
解压
ZIP条目不使用高速缓冲。 |
private static void |
ZipUtils.validateFiles(File zipFile,
File... srcFiles)
判断压缩文件保存的路径是否为源文件路径的子文件夹,如果是,则抛出异常(防止无限递归压缩的发生)
|
static File |
ZipUtils.zip(File srcFile)
打包到当前目录,使用默认编码UTF-8
|
static File |
ZipUtils.zip(File zipFile,
boolean withSrcDir,
File... srcFiles)
对文件或文件目录进行压缩
使用默认UTF-8编码 |
static File |
ZipUtils.zip(File srcFile,
Charset charset)
打包到当前目录
|
static File |
ZipUtils.zip(File zipFile,
Charset charset,
boolean withSrcDir,
File... srcFiles)
对文件或文件目录进行压缩
|
static File |
ZipUtils.zip(File zipFile,
String[] paths,
InputStream[] ins)
对流中的数据加入到压缩文件
路径列表和流列表长度必须一致 |
static File |
ZipUtils.zip(File zipFile,
String[] paths,
InputStream[] ins,
Charset charset)
对流中的数据加入到压缩文件
路径列表和流列表长度必须一致 |
static File |
ZipUtils.zip(File zipFile,
String path,
InputStream in)
对流中的数据加入到压缩文件
使用默认编码UTF-8 |
static File |
ZipUtils.zip(File zipFile,
String path,
InputStream in,
Charset charset)
对流中的数据加入到压缩文件
|
static File |
ZipUtils.zip(File zipFile,
String path,
String data)
对流中的数据加入到压缩文件,使用默认UTF-8编码
|
static File |
ZipUtils.zip(File zipFile,
String path,
String data,
Charset charset)
对流中的数据加入到压缩文件
|
private static void |
ZipUtils.zip(File file,
String srcRootDir,
ZipOutputStream out,
FileFilter filter)
递归压缩文件夹
srcRootDir决定了路径截取的位置,例如: file的路径为d:/a/b/c/d.txt,srcRootDir为d:/a/b,则压缩后的文件与目录为结构为c/d.txt |
static File |
ZipUtils.zip(String srcPath)
打包到当前目录,使用默认编码UTF-8
|
static File |
ZipUtils.zip(String srcPath,
Charset charset)
打包到当前目录
|
static File |
ZipUtils.zip(String srcPath,
String zipPath)
对文件或文件目录进行压缩
不包含被打包目录 |
static File |
ZipUtils.zip(String srcPath,
String zipPath,
boolean withSrcDir)
对文件或文件目录进行压缩
|
static File |
ZipUtils.zip(String srcPath,
String zipPath,
Charset charset,
boolean withSrcDir)
对文件或文件目录进行压缩
|
Copyright © 2020. All rights reserved.