Java学习笔记之Class.forName()

使用过程中一直报错,Unhandled exception type ClassNotFoundException
折腾了我一个晚上,原来根本不是我想的那样。

实际上是因为Class.forName()方法抛出ClassNotFoundException异常,是说未对异常类型ClassNotFoundException进行处理。必须使用try块捕获并处理,因此根本不是找不到类的异常报告。

这时只要用try块把Class.forName("com.mysql.jdbc.Driver")包围即可。
package kown.reflect;
public class ReflectTest
{
    public static void main(String[] args)
    {
        try
        {
            Class clazz = Class.forName("kown.reflect.Show");
            Show show = (Show) clazz.newInstance();
            show.test();
        } catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        } catch (InstantiationException e)
        {
            e.printStackTrace();
        } catch (IllegalAccessException e)
        {
            e.printStackTrace();
        }
    }
}
class Show
{
    public void test()
    {
        System.out.println("hello world!");
    }
}

你可能感兴趣的:(Java学习笔记之Class.forName())