gpt4 book ai didi

java - 为什么java需要Class.forName或者动态加载?

转载 作者:行者123 更新时间:2023-12-02 00:37:17 25 4
gpt4 key购买 nike

说。 jdbc 驱动程序需要 Class.forName 来执行类的静态 block 。为什么不将其作为类字段运行?

最佳答案

Class.forName() 保证在您调用该类时初始化该类。您建议如何做?您可以只声明一个局部变量而不分配它,例如 com.foo.Driver d; 吗?如果将其设为成员变量呢?您必须实际分配它吗?规范对于如何以及何时必须加载类有何规定?您真的需要考虑这一点,还是只是调用 Class.forName()

与此相关的是,对于许多 JDBC 驱动程序,不再需要执行此操作。 DriverManager now uses the ServiceLoader mechanism识别并加载符合要求的驱动程序类。

关于java - 为什么java需要Class.forName或者动态加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7425244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com