黑马程序员技术交流社区
标题:
通过反射获取实体类中的方法,这两种方式有什么区别?
[打印本页]
作者:
任我行
时间:
2015-1-7 17:27
标题:
通过反射获取实体类中的方法,这两种方式有什么区别?
本帖最后由 任我行 于 2015-1-8 10:47 编辑
package com.itheima.test;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class Test2
{
/**
* 编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象, 并调用该对象中的方法。##
*/
public static void main(String[] args) throws Exception
{
//方式一
Class<?> class1 = Class.forName("com.itheima.test.Demo");
Constructor<?> con =class1.getConstructor();
Demo demo = (Demo)con.newInstance();
Method method = class1.geMethod("show");
method.invoke(demo);
//方式二
Class<?>class2 = Class.forName("com.itheima.test.Demo");
Method method1 =class2.getMethod("show");
method1.invoke(null);
}
}
//实体类
package com.itheima.test;
public class Demo
{
public static void show()
{
System.out.println("反射調用該方法");
}
}
复制代码
作者:
小僧玄奘
时间:
2015-1-7 22:13
类型不同啊
作者:
huduzhi
时间:
2015-1-8 01:33
getDeclaredMethod可以获得private方法。 getMethod只能获取类的公有方法。
作者:
任我行
时间:
2015-1-8 10:46
标题:
代码有点误解,我想问的是下面这两种方式有什么区别
public static void main(String[] args) throws Exception
{
//方式一
Class<?> class1 = Class.forName("com.itheima.test.Demo");
Constructor<?> con =class1.getConstructor();
Demo demo = (Demo)con.newInstance();
Method method = class1.getMethod("show");
method.invoke(demo);
//方式二
Class<?>class2 = Class.forName("com.itheima.test.Demo");
Method method1 =class2.getMethod("show");
method1.invoke(null);
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2