java获取类的有关信息
答案:2 悬赏:0
解决时间 2021-02-11 09:24
- 提问者网友:南佳人~
- 2021-02-10 10:45
java获取类的有关信息
最佳答案
- 二级知识专家网友:高冷不撩人
- 2021-02-10 11:22
同上
全部回答
- 1楼网友:末路丶一枝花
- 2021-02-10 11:48
在java中动态执行类的静态方法 /* 在java中,通过class.forname()方法可以动态决定加载哪一个类,这个功能对于相同接口的不同实现来讲非常有用。比如对于设计好的数据库连接池接口,我们可以有多种的接口实现类来完成相同的功能,同时用户可以简单的通过修改配置文件来指定实际使用哪一个实现类,在源代码里面通过读取配置文件信息,并用class.forname(configclassname).getinstance()就可以构造一个特定的实现类实例,而不用每次修改源代码。这样对于程序来讲只用关心接口的定义,用户只用进行配置文件的设置就完成了同一功能的不同实现的切换。 但是如果实现类需要通过静态方法来进行初始化的时候,动态加载的过程就会复杂一些。同样的以数据库连接池为例,通常连接池的构造函数都会被定义为私有的,而通过自定义的getinstance()静态方法来得到唯一实例。这种情况下简单的通过class.forname().getinstance()就无法正确构造实例。 幸好java所提供的反射机制(reflection)为我们提供了完整了探悉类内部结构的方法。通过反射机制,我们能够完成基本上所有的运行时决定的动作(虽然这一实现要比其他动态语言,比如php,的eval()的使用要复杂的多)。 下面通过实际的例子说明如何在运行时动态访问类的静态方法。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯