您的位置:首页 > 编程语言 > Java开发

Java获得指定ClassLoader所加载的类列表

2009-12-30 19:00 351 查看
一直想实现像DriverManager那样的getConnection方法,通过此方法就可以获得连接,而且还不用指定Driver,但前提是Driver已经通过Class.forName()或new Driver()进行了加载。今天终于得以实现。

package quiz;

import java.lang.reflect.Field;

public class ClassLoaderDriver {

/**
* @param args
* @throws NoSuchFieldException
* @throws SecurityException
* @throws IllegalAccessException
* @throws IllegalArgumentException
* @throws ClassNotFoundException
*/
public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
Field field = ClassLoader.class.getDeclaredField("classes");
field.setAccessible(true);//设置该成员变量为可访问
System.out.println(field.get(ClassLoader.getSystemClassLoader()));
}

}


这样一来,我们就可以实现和DriverManager类似的功能了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: