A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张小庆 中级黑马   /  2012-4-26 13:28  /  1436 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

假设我有一个Student类,用反射方式创建一个实例对象,格式应该是怎么样的呢?

4 个回复

倒序浏览
private void ShowWindowByName(string name)
        {
            Form f = (Form)Activator.CreateInstance(Type.GetType(name));
            f.Visible = true;
            f.Show();
        }
调用:
ShowWindowByName(this.GetType().Namespace+"."+"Form1");
ShowWindowByName(this.GetType().Namespace+"."+"Form2");
回复 使用道具 举报
看你传入什么参数,如果是类名则:
Object array = java.lang.reflect.Array.newInstance(Class.forName(clzName), 10);
如果是对象则
Object array = java.lang.reflect.Array.newInstance(obj.getClass……
给你一个person的例子
public class Test{
        
      
        
        
        public static void main(String[] args) throws Exception{

                                   Class c = Class.forName("Test.Persion");

               

                                  Constructor constructor= c.getConstructor();

                                  Persion person1 =(Persion)constructor.newInstance();

               

                                  Method mothod1= person1.getClass().getMethod("setAge",int.class);

                                         mothod1.invoke(person1, 35);

                                Method mothod2= person1.getClass().getMethod("setName",String.class );

                                  mothod2.invoke(person1, "lzhongyu");

                                  Field m1= person1.getClass().getField("age");

                                  System.out.println(m1.get(person1));

                                  Field m2= person1.getClass().getField("name");

                                  System.out.println(m2.get(person1));

                          
}
}
回复 使用道具 举报
毕博 发表于 2012-4-26 13:37
看你传入什么参数,如果是类名则:
Object array = java.lang.reflect.Array.newInstance(Class.forName(cl ...

  Class c = Class.forName("Test.Persion");我想问一下,引号里的是包名.类名吗?

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马