当前位置:  技术问答>java相关

加载之后?

    来源: 互联网  发布时间:2015-05-29

    本文导语:  使用Class.forName(“name”);后 是否可以直接使用name中定义的方法 还是要创建一个实例再调用 。 new name().method;? 如果name中的类中包含已知接口 又该怎样调用接口方法? | 不客气! | name...

使用Class.forName(“name”);后
是否可以直接使用name中定义的方法
还是要创建一个实例再调用 。
new name().method;?
如果name中的类中包含已知接口
又该怎样调用接口方法?

|
不客气!

|
name aName = Class.forName("name");
aName.method();

|
getMethod("name")得到一个Method,然后用这个Method的invoke()执行。

|
不过,好的一点的用法是先定义一个接口,然后把Class.forName()创建的类造型为该接口,调用接口的方法。

|
呵呵,你结贴太快了!其实这些问题都可以在那个帖子一起解决
http://www.csdn.net/Expert/TopicView1.asp?id=721965
我做了写补充,希望能对你有所帮助。

|
Class.forName(“name”);后得到的是一个Class,还需用
Class.newInstance()来得到一个object,在转化成具体的实例,
比如:
Calculator cal = (Calculator) ( Class.forName("cal")).newInstance();
cal.add(1,2);
明白了吧?

|
是name aname;
 aname.methodname();
:)

|
可以,但那样你的程序就太有针对性而无法扩展了

|
是啊,但是java.sql.*不是为sun.jdbc.odbc.JdbcOdbcdriver一个类服务的啊!它开发时要考虑到各种厂商的不同驱动,如果你确信你的应用对数据库不会做任何的变更(比如从JDBC:ODBC方式方式转到SQLServe自己的驱动),你当然可以直接使用,可以省去反射和造型的开销:)

|
interface A{}
class B implements A{}
B b;
Object t = Class.forName( b.getClass().getName() ).newInstance();
// 造型
A a = ( A ) t;

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • 请教一下Linux的动态库加载方式(是启动加载还是运行加载?)
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 在线等待!请文中怎么使用WebLogc的类加载器加载一个类?
  • struts+spring+hibernate+jquery实现分页功能的几个基本类介绍(异步加载)
  • driver的静态加载和动态加载占用内存问题
  • 可执行程序加载动态库 和 动态库加载动态库 的动态库初始化的问题
  • vmware下加载了一个虚拟软驱镜像,如果设置第一启动项为软驱的话,软驱能正常加载运行。但如果我第一启动项不设为软驱,正常启动fedora12的话。
  • usbhid妨碍了系统自动加载我的usb驱动程序,求教解决 (主要是加载后设备的驱动被认作usbhid)
  • 问问lib加载的问题
  • linux生成(加载)动态库静态库和加载示例方法
  • 使用非root用户加载模块出错
  • linux网卡驱动加载异常
  • 要写一个Linux下的elf加载器需要哪些知识?
  • 加载混杂设备
  • js/css文件加载管理 uetjs
  • 如何加载硬盘?
  • 为何每次重启都要重新加载驱动模块?
  • JS文件加载优化 ControlJS
  • 无刷新动态加载数据与滚动条加载适合评论的jquery代码
  • jQuery数据延迟加载插件 DataLazyLoad


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,