黑马程序员技术交流社区

标题: 面试题分享(2) [打印本页]

作者: mortonnnn    时间: 2015-7-25 01:12
标题: 面试题分享(2)

14.编写一个类,增加一个实例方法用于打印一条字符串,并使用反射手段创建该类的对象,并调用该对象中的方法


思路:主要就是反射的考查,获取实例和操作方法

代码:
class S
{
        public void println(String str){
                System.out.println(str);
        }
}

class Test
{
        public static void main(String[] args){
                Class clazz = S.class;
                Object s = clazz.newInstance();
                //获取一般实例方法
                Method method = clazz.getMethod("println",String.class);
                method.invoke(s,"feriosa");
        }

}

注意点:
1.newInstance()而不是getInstance()
2.getMethod()是class的方法,而不是Object的



作者: 张凝宁    时间: 2015-7-25 01:14
膜拜:victory::victory::victory:
作者: mortonnnn    时间: 2015-7-25 01:26
张凝宁 发表于 2015-7-25 01:14
膜拜

谢谢支持哈
作者: xiaoshaoye    时间: 2015-7-25 08:37
这个题。好像到处都出现了。。。
作者: Matrix_heima    时间: 2015-7-25 10:22
  1. class Test
  2. {
  3.         public static void main(String[] args){
  4.                 String className = "包名.S";
  5.                 Class clazz = Class.forName(className);
  6.                 Object s = clazz.newInstance();
  7.                 //获取一般实例方法
  8.                 Method method = clazz.getMethod("println",String.class);
  9.                 method.invoke(s,"feriosa");
  10.         }

  11. }
复制代码

作者: Apol    时间: 2015-7-25 10:24
反射。。




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