黑马程序员技术交流社区

标题: 入学考试的一道题,帮忙看看这问题出的有点小错误吧 [打印本页]

作者: 谭荣强    时间: 2014-6-11 16:35
标题: 入学考试的一道题,帮忙看看这问题出的有点小错误吧
2、 ArrayList list = new ArrayList(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
应该是:ArrayList<Integer> list = new ArrayList()<Integer> 吧
作者: 赵洋洋    时间: 2014-6-11 16:55
是啊ArrayList<int> list = new ArrayList()<int>
作者: 谭荣强    时间: 2014-6-11 17:12
赵洋洋 发表于 2014-6-11 16:55
是啊ArrayList list = new ArrayList()

顺便提一句,泛型不接受基本数据类型啊
作者: axuan    时间: 2014-6-11 17:35
list = new ArrayList(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。

这个可以通过java的反射机制来实现;

  package com.credream.refelect;

  import java.lang.reflect.Method;

  import java.util.ArrayList;

  import java.util.List;

  public class TestFile {

  public static void main(String[] args) throws Exception {

  List<Integer> list = new ArrayList<Integer>(); //定义Integer泛型

  String str = "abc";

  Method[] method=list.getClass().getMethods();//取得list的所有方法

  System.out.println(method.length);

  for(int i=0;i<method.length;i++){

  System.out.println(method[i]);//遍历打印list的方法

  }

  method[0].invoke(list, str);//通过反射来执行list的第一个方法,第一个是list对象,代表该对象的方法,第二个是方法参数

  System.out.println(list.size());

  for(int i=0;i<list.size();i++){

  System.out.println(list.get(i));

  }

  }

  }

作者: yinxjfly    时间: 2014-6-11 17:38
要用到反射,泛型在编码时期起到限定的作用,生成的.class文件中是没有泛型的。可以通过反射给集合中存入泛型之外的类对象!
作者: 谭荣强    时间: 2014-6-11 17:42
yinxjfly 发表于 2014-6-11 17:38
要用到反射,泛型在编码时期起到限定的作用,生成的.class文件中是没有泛型的。可以通过反射给集合中存入泛 ...

我知道怎么做,你看看这句话:在这个泛型为Integer的ArrayList中 是不是有问题
作者: wangkerui    时间: 2014-6-11 18:05
对啊。。。。。。
作者: 赵洋洋    时间: 2014-6-13 22:40
谭荣强 发表于 2014-6-11 17:12
顺便提一句,泛型不接受基本数据类型啊

嗯,,谢谢教诲,,我刚知道,这道题用反射做的,我gg的
作者: 嗅ㄨiaǒ孑    时间: 2014-6-13 22:57
是的啊   顺便学习
作者: 嗅ㄨiaǒ孑    时间: 2014-6-13 22:58
是的啊   顺便来学习下
作者: See_the_sun    时间: 2014-6-13 23:03
路过学习了。反射还没看过。只看过Map.继续学习
作者: yinxjfly    时间: 2014-6-13 23:11
问一下,入学笔试过了后大致多久视频面试呢?

作者: 谭荣强    时间: 2014-6-14 01:46
yinxjfly 发表于 2014-6-13 23:11
问一下,入学笔试过了后大致多久视频面试呢?

随时都可以




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