Class.forName();
这个表达式具体有什么用处啊?

解决方案 »

  1.   

    利用java中的反射机制,运行时加载一个class,并实例化
      

  2.   

    public class cookie {
        static{
            System.out.println("loading cookie");
        }
    }
    public class sweetshop {
        public static void main(String[] args)  {
            try {
                Class.forName("cookie");
            } catch (ClassNotFoundException ex) {
            }
       }
    }
    但是我这样写没有打印出 loading cookie这句话啊?哪里错了
      

  3.   

    catch (ClassNotFoundException ex) { 
             e.printStackTrace();//达因信息看看
            } 
    你是不是没写包名阿?
      

  4.   

       你上面这段程序怎么能用两个public类呢?首先你的程序本身运行就会报错
      

  5.   

    。同样的程序在eclipse中能打印出 jbuilder就不行...郁闷
      

  6.   

    答:zr_dixuexiongying ,真可爱啊!
    楼主,程序应该是可以的啊
      

  7.   

    加载驱动的如:
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.PreparedStatement;
    import java.sql.DriverManager;/**
     * 建立数据库连接和关闭数据库连接的类*/
    public final class ConnectionManager {
        private static final String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
        private static final String URL = "jdbc:odbc:sql";
        private static Connection con = null;    private ConnectionManager() {
        }    //建立数据库联接
        public static Connection getConnection() {
            try {
                Class.forName(DRIVER); //加载并注册驱动            con = DriverManager.getConnection(URL); //取得连接
                if (con != null) {
                    System.out.println("连接数据库成功");
                }
            } catch (Exception e) {
                System.out.println("连接数据库不成功" + e.getMessage());
            }
            return con;
        }    //关闭ResultSet对象
        public static void closeResultSet(ResultSet rs) {
            try {
                if (rs != null) {
                    rs.close();
                }
            } catch (Exception e) {
                System.out.println("ConnectionManager中的closeResultSet()方法有错误" +
                                   e.getMessage());
            }
        }    //关闭PreparedStatement对象
        public static void closeStatement(PreparedStatement pstm) {
            try {
                if (pstm != null) {
                    pstm.close();
                }
            } catch (Exception e) {
                System.out.println("ConnectionManager中的closeStatement()方法有错误" +
                                   e.getMessage());
            }
        }    //关闭Connection对象
        public static void closeConnection(Connection con) {
            try {
                if (con != null && con.isClosed() == false) {
                    con.close();
                }
            } catch (Exception e) {
                System.out.println("ConnectionManager中的closeConnection()方法有错误" +
                                   e.getMessage());
            }
        }
    }
      

  8.   

    这个Class.forName();是一个通过类路径读取类文件,并在虚拟机中生成一个该类的类对象。
    这个方法常用来加载数据库驱动。
      

  9.   

    这个Class.forName()是加载参数所表示的类的,但是现在还没有任何实例。参数表示的是“全限定的类名”,并且改类能在classpath里找到。
    这时还没有创建任何实例,改调用只是返回一个Class对象,通过调用其newInstance()方法创建实例(前提是你的类有不带参数的构造方法)
      

  10.   

    程序运行时,通过反射加载一个class并实例化.