doc: 添加 java反射 (#103)

This commit is contained in:
Anko 2022-11-17 08:54:47 +08:00 committed by GitHub
parent fda783c165
commit 38453c5e31
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -783,6 +783,26 @@ try {
} }
``` ```
### 反射
```java
/**
* 利用反射动态加载依赖库
* java9及以上版本可用
* @param jar jar文件
*/
Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
method.setAccessible(true);
MethodHandle addURL = lookup.unreflect(method);
URL url = jar.toURI().toURL();
URLClassLoader urlClassLoader = new URLClassLoader(new URL[] {url});
addURL.invoke(urlClassLoader, url);
//java8
Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
method.setAccessible(true);
method.invoke(classLoader, url);
```
### util工具类 ### util工具类
- `ArrayDeque` 提供 resizable-array 并实现 Deque 接 - `ArrayDeque` 提供 resizable-array 并实现 Deque 接