黑马程序员技术交流社区

标题: 弱弱的问个反射格式的问题 [打印本页]

作者: 张小庆    时间: 2012-4-26 13:28
标题: 弱弱的问个反射格式的问题
假设我有一个Student类,用反射方式创建一个实例对象,格式应该是怎么样的呢?
作者: 赵嘉男    时间: 2012-4-26 13:36
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");

作者: 毕博    时间: 2012-4-26 13:37
看你传入什么参数,如果是类名则:
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:42
毕博 发表于 2012-4-26 13:37
看你传入什么参数,如果是类名则:
Object array = java.lang.reflect.Array.newInstance(Class.forName(cl ...

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






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2