今天学习面试题。具体是反射方面的。
问:反射在你平时写代码或者框架中的应用场景有哪些?
加载数据库驱动
答:我们的项目底层数据库有时是用mysql,有时用oracle,需要动态地根据实际情况加载驱动类,这个时候反射就有用了,假设 myqlConnection,oracleConnection这两个类我们要用。
这时候我们在使用 JDBC 连接数据库时使用 Class.forName()通过反射加载数据库的驱动程序,如果是mysql则传入mysql的驱动类,而如果是oracle则传入的参数就变成另一个了。
Class.forName("com.mysql.cj.jdbc.Driver");