黑马程序员技术交流社区
标题:
控制台输入类名,反射类中的方法;
[打印本页]
作者:
郑飞
时间:
2014-10-3 01:21
标题:
控制台输入类名,反射类中的方法;
本帖最后由 郑飞 于 2014-10-25 11:53 编辑
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.reflect.Method;
public class SysinReflect {
/**
* 接收控制台输入的一个类名(这个类事先定义好),通过反射创建这个类的对象并调用里面的方法;
* @throws Exception
*/
public static void main(String[] args) throws Exception
{
String classname = "BeReflect";//定义用于比较类名的字符串;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
System.out.println("InPut A ClassName(exit whit \"end\"):");
while((line = br.readLine())!=null)
{
if(line.equals(classname))
{
//进行反射
Class c = Class.forName(line);
Method m = c.getMethod("test", null);
m.invoke(c.newInstance(), null);
}else if(line.equalsIgnoreCase("end"))
{
System.out.println("exit");
break;
}
else
System.out.println("ClassNotFound,InPut Again:");
}
br.close();
}
}
class BeReflect
{
public void test()
{
System.out.println("i'm reflect!");
}
}
复制代码
作者:
JerryJava
时间:
2014-10-3 06:11
哥,2am...珍惜身体资源。祝好。
作者:
郑飞
时间:
2014-10-3 14:52
JerryJava 发表于 2014-10-3 06:11
哥,2am...珍惜身体资源。祝好。
呵呵 一定一定 谢谢
作者:
354620815
时间:
2014-10-3 20:53
知道怎么反射main()主函数?
作者:
郑飞
时间:
2014-10-3 21:40
354620815 发表于 2014-10-3 20:53
知道怎么反射main()主函数?
好像在哪个视频里有的:
Class clazz = 类名.class;
Method method = clazz.getMethod("main",String[].class);
method.invoke(null, (Object)new String[]{字符串参数1,字符串参数2...});
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2