黑马程序员技术交流社区

标题: 这个怎么做啊,看到别人发的面试题 [打印本页]

作者: 周靖轩    时间: 2014-9-21 20:03
标题: 这个怎么做啊,看到别人发的面试题
Iterator<Integer> iterator = new ArrayList<Integer>().iterator();写一个程序,给此  ArrayList 添加一个“String”的值。

这题怎么做,急求解决!
作者: however_    时间: 2014-9-21 20:07
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));
}
}
}
反射机制
作者: 周靖轩    时间: 2014-9-21 21:17
however_ 发表于 2014-9-21 20:07
package com.credream.refelect;
import java.lang.reflect.Method;
import java.util.ArrayList;

谢谢!不过你看错了,题目是Iterator<Integer> iterator = new ArrayList<Integer>().iterator()
不是List<Integer> list = new ArrayList<Integer>();

作者: fantacyleo    时间: 2014-9-21 21:40
周靖轩 发表于 2014-9-21 21:17
谢谢!不过你看错了,题目是Iterator iterator = new ArrayList().iterator()
不是List list = new Array ...

你这题目就有问题。Iterator iterator = new ArrayList().iterator()虽然new了一个ArrayList,可这个ArrayList根本访问不到,怎么往里面添加数据?
作者: 周靖轩    时间: 2014-9-21 21:57
fantacyleo 发表于 2014-9-21 21:40
你这题目就有问题。Iterator iterator = new ArrayList().iterator()虽然new了一个ArrayList,可这个Arra ...

这是在别人发的题里看到的,我也觉得这题有问题,不过是我是刚学没多久,不敢确定。
你确定是这题错了吗???
作者: MR.J    时间: 2014-9-21 22:27
还 不会呢呢呢。。。。。。。。。。。
作者: fantacyleo    时间: 2014-9-21 22:27
周靖轩 发表于 2014-9-21 21:57
这是在别人发的题里看到的,我也觉得这题有问题,不过是我是刚学没多久,不敢确定。
你确定是这题错了吗 ...

如果是ListIterator还有救,因为ListIterator有add方法,Iterator嘛我实在是无能为力了
作者: 沙拉很好吃    时间: 2014-9-21 22:35
感觉这题有点问题,泛型都写了Integer,怎么又要存String吗
作者: however_    时间: 2014-9-21 22:42
周靖轩 发表于 2014-9-21 21:17
谢谢!不过你看错了,题目是Iterator iterator = new ArrayList().iterator()
不是List list = new Array ...

我总觉得差不多 答案我也没确定  只做参考吧
作者: yuli2039    时间: 2014-9-21 23:25
这是高新部分的内容~~~楼主这个不会就别急着往后走流程了!先复习下高新部分
提示一下:用反射技术,可以擦除泛型,绕过泛型的限制,比如往一个ArrayList<Integer>中添加String
作者: 周靖轩    时间: 2014-9-22 22:29
沙拉很好吃 发表于 2014-9-21 22:35
感觉这题有点问题,泛型都写了Integer,怎么又要存String吗

ArrayList<Integer> arr = new ArrayList<Integer>();这个是可以添加String的,编译去泛型化,用反射的方式添加,

作者: 四条眉毛    时间: 2014-9-22 23:06
学习了,原来是这样啊,嘿嘿
作者: 沙拉很好吃    时间: 2014-9-23 09:14
周靖轩 发表于 2014-9-22 22:29
ArrayList arr = new ArrayList();这个是可以添加String的,编译去泛型化,用反射的方式添加,
...

原来这样啊,视频中有讲吗,我还没看到那
作者: 在学野马    时间: 2014-9-23 09:40
有做出来的吗?
作者: 周靖轩    时间: 2014-9-23 10:01
在学野马 发表于 2014-9-23 09:40
有做出来的吗?

两种情况可以做,一种是ArrayList arr = new ArrayList();还一种是列表迭代器的情况。
像题目这种普通迭代器就做不出来。应该是题目的问题,之前在论坛看到别人发的面试题复制下来的。
作者: 周靖轩    时间: 2014-9-23 10:05
沙拉很好吃 发表于 2014-9-23 09:14
原来这样啊,视频中有讲吗,我还没看到那

高新技术中有讲到的




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