A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 墓____夜 中级黑马   /  2014-6-17 12:28  /  789 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;


public class InnerClassTest
{
       public static void main(String[] args) throws Exception, SecurityException {
               List<String> list = new ArrayList<>();
               Method method=list.getClass().getMethod("add", int.class);
               method.invoke(list, 1245);
             for (String string : list) {
                        System.out.println(string);
                }
              
        }
         
}
没有结果,为什么

评分

参与人数 1黑马币 +5 收起 理由
寻找人生目标 + 5 很给力! 学习了!

查看全部评分

3 个回复

正序浏览
add的参数不对吧,有add(int x)这个重载函数吗,记得没有
回复 使用道具 举报
zhanqq2010 来自手机 中级黑马 2014-6-17 13:11:02
藤椅
你list里面没有东西吧?
回复 使用道具 举报
本帖最后由 majunm 于 2014-6-17 13:23 编辑

        public static void main(String[] args) throws Exception, SecurityException {
                List<String> list = new ArrayList<>();
                Method method = list.getClass().getMethod("add",Object.class);
                method.invoke(list, 12345);
                System.out.println(String.valueOf(list.get(0)));
                System.out.println(list.toString());
//反射过后,编译器对泛型进行擦除,(专业术语,你可以理解成不存在泛型限定),所以  list只有这个方法 list.add(Object obj);接受的参数是object  // Method method = list.getClass().getMethod("add",int.class); int.class 是错误的!
        }

QQ图片20140617131944.jpg (255.47 KB, 下载次数: 8)

QQ图片20140617131944.jpg
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马