飞艳小屋

程序--人生--哲学___________________欢迎艳儿的加入

BlogJava 首页 新随笔 联系 聚合 管理
  52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks
 我知道一个类的名儿,比如:"com.common.MyClass"但是在我自己的类中不能用这个来定义他的一个实例,因为这个类的名儿可能会变化,请看下面:  
  class   A{  
          //   com.common.MyClass   obj;   不能这样定义  
          Object   obj   =   Class.forName("com.common.MyClass").newInstance();  
          //   上面一句,生成一个自定义类的实例,但是我怎样才能把obj强转成com.common.MyClass这个  
          //   类型呢???或者说怎么样直接把obj定义成com.common.MyClass的类型???(动态的来定义)  
          //   请高手们指教啊!!!  
  }
好像没有办法,如果是要调用MyClass的函数的话还是有办法的  
  比如:  
  obj所属的类有toLog方法,toLog(String   str,Integer   i),可以用下面的代码调用这个函数  
  Object   obj   =   Class.forName("com.common.MyClass").newInstance();  
  Method   logMethod   =   obj.getClass().getMethod("toLog",new   Class[]   {   String.class,   Integer.class   });  
  Object   logobj   =   logMethod.invoke(obj,   new   Object[]   {   "something",new   Integer(7)   });  
posted on 2007-01-14 19:46 天外飞仙 阅读(2183) 评论(3)  编辑  收藏

Feedback

# re: java生成动态类实例并调用里面的方法 2007-01-14 20:26 路过
你这个是不是把MyClass定义成一个接口了,然后你要在程序中调用他的实现类  回复  更多评论
  

# re: java生成动态类实例并调用里面的方法 2007-04-24 15:31 天外飞仙
不是接口,是接口能用这个方法吗?Class.forName("com.common.MyClass").newInstance();
  回复  更多评论
  

# re: java生成动态类实例并调用里面的方法 2007-08-29 14:09 天外飞仙
以上意思是想调用一个用变量表示的一个类,用class.forname()实例化它,现在怎么调用这个类里的所有方法.在不知道这个类里有什么方法时.也可以用接口实现,现在想来好傻.  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: