问答详情
源自:5-1 Java 方法反射的基本操作

Objecto o 的这个返回是什么意思呢?

Method coco= d.getMethod("print", new Class[]{int.class,int.class});

a1.print(10, 20);

//Object go= coco.invoke(a1, new Object[]{2,3});

Object deo= coco.invoke(a1, 10,10);

Method lwk= d.getMethod("print", String.class,String.class);

deo= lwk.invoke(a1, "wode","nadi");//这一行就不报错呢?

String deo= (String) lwk.invoke(a1, "aaaa","vvvv"); //为什么这一行输出会报错呢?上面的就不报错了

String deo1 =(String) lwk.invoke(a1, "ddd","cccc");

a1.print("nigag", "gagog");


提问者:慕前端0336099 2016-04-08 15:26

个回答

  • 突然
    2016-04-08 19:02:52
    已采纳

    这个方法如果没有返回值返回的是null 而null是一个固定的不确定类型的内存,即可以看做是什么类型也不是,也没有继承Object,当然没有toString()方法,所以这句代码不会默认调用str的toString()方法,所以会报错

  • 慕移动9181930
    2022-03-26 08:05:01

    路过,也踩!

  • Listener
    2016-08-31 09:16:45

    实测把Object o去掉也是可以的

  • 慕前端0336099
    2016-04-08 19:22:20

    是名字重复了  我就是想知道  同一个类里面的两个方法可不可以用同一个变量名来存储 

    实验证明不行

    谢谢你了大神