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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

        Method genericMethod=GenericTest.class.getMethod("applyVector",Vector.class);
                Type[] genericType=genericMethod.getGenericParameterTypes();
                ParameterizedType parameterType=(ParameterizedType)genericType[0];
                System.out.println(parameterType.getRawType());
                System.out.println((parameterType.getActualTypeArguments()[0]));
        }
        public static void applyVector(Vector<Date> v)
        {}
这个可以通过
结果是
class java.util.Vector
class java.util.Date

为什么public改成private,编译通过,但是运行失败啊
Exception in thread "main" java.lang.NoSuchMethodException: cn.itcast.day2.GenericTest.applyVector(java.util.Vector)
        at java.lang.Class.getMethod(Class.java:1605)
        at cn.itcast.day2.GenericTest.main(GenericTest.java:44)


我怀疑反射调用方法必须的都用public

评分

参与人数 1黑马币 +10 收起 理由
刘芮铭 + 10 赞一个!

查看全部评分

5 个回复

倒序浏览
沙发,师兄,学习一下
回复 使用道具 举报
反省集合需要外部调用
回复 使用道具 举报
对于私有的方法, Method genericMethod=GenericTest.class.getMethod("applyVector",Vector.class);
必须改成getDeclaredMethod
回复 使用道具 举报
对于私有的方法, Method genericMethod=GenericTest.class.getMethod("applyVector",Vector.class);
必须改成getDeclaredMethod
回复 使用道具 举报
对于私有的方法, Method genericMethod=GenericTest.class.getMethod("applyVector",Vector.class);
必须改成getDeclaredMethod
在加上genericMethod.access(true)就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马