黑马程序员技术交流社区
标题:
很简单, 就是搞不明白。
[打印本页]
作者:
墓____夜
时间:
2014-6-17 12:28
标题:
很简单, 就是搞不明白。
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);
}
}
}
没有结果,为什么
作者:
majunm
时间:
2014-6-17 13:05
本帖最后由 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, 下载次数: 10)
下载附件
2014-6-17 13:19 上传
作者:
zhanqq2010
时间:
2014-6-17 13:11
你list里面没有东西吧?
作者:
帅哥哥
时间:
2014-6-17 13:12
add的参数不对吧,有add(int x)这个重载函数吗,记得没有
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2