import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.Enumeration;
public class ClassUtils {
private static final String PACKAGE_NAME = "service";
// packageName="service"
public static Class[] getClassByPackage() {
try {
Enumeration<URL> resources = ClassUtils.class.getClassLoader().getResources(PACKAGE_NAME);
while (resources.hasMoreElements()) {
// URL url = resources.nextElement(); file:/E:/tools/Java_Project/MyDubbo/target/classes/service
// String path = resources.nextElement().getPath(); /E:/tools/Java_Project/MyDubbo/target/classes/service
// E:/tools/Java_Project/MyDubbo/target/classes/service
String s = resources.nextElement().getFile();
String[] files = new File(s).list();
// 开辟数组 注意impl包
Class[] serviceInterfaces = new Class[files.length-1];
for (int i = 0; i < files.length; i++) {
if (files[i].contains("class")) {
// service.HelloService
serviceInterfaces[i]=Class.forName(PACKAGE_NAME + '.' + files[i].replace(".class", ""));
}
}
return serviceInterfaces;
}
return null;
} catch (IOException | ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public static Class[] getClassByPackage(String packageName) {
try {
// packageName="service"
Enumeration<URL> resources = ClassUtils.class.getClassLoader().getResources(packageName);
while (resources.hasMoreElements()) {
// URL url = resources.nextElement(); file:/E:/tools/Java_Project/MyDubbo/target/classes/service
// String path = resources.nextElement().getPath(); /E:/tools/Java_Project/MyDubbo/target/classes/service
// E:/tools/Java_Project/MyDubbo/target/classes/service
String s = resources.nextElement().getFile();
String[] files = new File(s).list();
Class[] serviceInterfaces = new Class[files.length-1];
for (int i = 0; i < files.length; i++) {
if (files[i].contains("class")) {
// service.HelloService
serviceInterfaces[i]=Class.forName(packageName + '.' + files[i].replace(".class", ""));
}
}
return serviceInterfaces;
}
return null;
} catch (IOException | ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
}
包内资源获取 工具类
最新推荐文章于 2023-03-14 14:55:21 发布