黑马程序员技术交流社区
标题:
反射的应用(reflect)
[打印本页]
作者:
男人你得有范
时间:
2014-8-24 19:38
标题:
反射的应用(reflect)
package com.itheima;
/*import java.lang.reflect.Constructor;
import java.lang.reflect.Method;*/
/**
*
* 第7题:编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象, 并调用该对象中的方法。
*
* @author hp-pc
*
* */
public class Test7
{
public static void printString(String str)
{
System.out.println(str);
}
public static void main(String[] args) throws Exception
{
/*
* 方法一:创建Sample对象
*
* try
{ //加载类,获得Sample类的Class对象
Class clazz = Class.forName("com.itheima.Sample");
//加载无参构造函数
Constructor constructor = clazz.getConstructor(null);
//创建Sample对象
Sample s = (Sample) constructor.newInstance(null);
//获得自定义实例方法
Method method = clazz.getMethod("print", null);
//调用该方法
//输出结果:黑马!我来了!!!
method.invoke(s, null);
}
catch (Exception e)
{
e.printStackTrace();
}
*/
//方法二:
//反射创建对象
Test7 t = Test7.class.newInstance();
//反射调用对象中的方法
Test7.class.getMethod("printString", String.class).invoke(t, new String("老师您辛苦了!!!嘿嘿"));
}
}
复制代码
作者:
天黑偷牛
时间:
2014-8-26 09:57
不错,不错
作者:
hyc845461500
时间:
2014-12-31 21:13
你的代码报错
作者:
古典牧童
时间:
2015-5-8 20:50
非常谢谢
作者:
刘旭波
时间:
2015-11-15 18:26
方法2代码编译没问题,可是运行报错呀
作者:
男人你得有范
时间:
2016-7-16 18:16
刘旭波 发表于 2015-11-15 18:26
方法2代码编译没问题,可是运行报错呀
应该把导入包的注释去掉就可以了吧{:2_30:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2