码迷,mamicode.com
首页 > 其他好文 > 详细

The Reflect Part

时间:2017-07-06 18:59:27      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:odi   init   eth   play   ges   splay   .com   tag   load   

The reflect part has many advantages.I heard that reflect is widely used in many frames.

In this part:

  1.Common method to get Class object:

    a)Class clazz = Class.forName(Qualified Name);

    b)Class clazz = Person.getClass();

    c)Class clazz = Person.class;

  2.Get the method:

    a)Method[] methods = clazz.getDeclaredMethods();

    b)Method method = clazz.getDeclaredMethod(method‘s name, parameters‘ class);

  3.Get the constructor:

    a)Constructor[] cons = clazz.getDeclaredConstructors();

    b)Constructor con = clazz.getDeclaredConstructor(parameters‘ class);

  4.Get the object:

    a)Person person = (Person) clazz.newInstance();

    b)Person person = (Person) constructor.newInstrance(parameters);

  5.Call the method:

    method.invoke(object,parameters);

 

What‘s going on when use the reflect?

  1.Load the person.class

  2.Create space in the heap memory

  3.Initialize the fields of this object

  4.Display the initialization

  5.Initialize the constructor

 

If you can use config file to configure the interface or class path, the code‘s extension will be very convenient.

For exmaple:

  If these is a file called config.txt. And the config.txt include the class or interface‘s path from the first line.

  main{

  BufferedReader reader = new BufferedReader(new FileReader(config file path));

  String line = reader.readLine();

  Class clazz = Class.forName(line);

  MyInterface mi = (MyInterface) clazz.newInstance();

  mi.test();

  }

 

If you want to use another Class object you can modify the config.txt , that is not a bad choice.

The Reflect Part

标签:odi   init   eth   play   ges   splay   .com   tag   load   

原文地址:http://www.cnblogs.com/ppcoder/p/7127372.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!