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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 樊占江 于 2012-8-7 22:31 编辑

import java.util.ArrayList;
@SuppressWarnings("rawtypes")
public class LoopListTest extends ArrayList{
private static final long serialVersionUID = 1L;
static int size = 0;
public static void main(String[] args) {
LoopListTest lp = new LoopListTest(3);
lp.addOB("one");
lp.addOB("two");
lp.addOB("three");
lp.pri(lp);
System.out.println("之后-------------");
lp.addOB("four");
lp.addOB("five");
lp.pri(lp);

}
@SuppressWarnings("static-access")
LoopListTest (int size) {
this.size = size;
}
public void pri (LoopListTest lp) {
for (int i = 0; i < lp.size(); i++) {
System.out.println(lp.get(i));
}
}
@SuppressWarnings("unchecked")
public boolean addOB (Object ob) {
if (this.getMSize() >= size) {
this.remove(0);
}
return this.add(ob);
}
public Object getFirst () {
if ((size > 0) && (this.getMSize() > 0)) {
return this.get(0);
}  else
return null;
}
public Object getChildAt (int item) {
if ((size > item) && (this.getMSize() > item)) {
return this.get(item);
} else
return null;
}
public int getMSize () {
return this.size();
}
}

这是全部代码    这是运行结果:
one
two
three
之后-------------
three
four
five

唯一的疑惑就是不能泛型   也不知道为什么继承于list之后不能泛型了。谁会帮忙看看吧

2 个回复

倒序浏览
问题我找出来了
在文件的开头添加一个泛型的支持  就是这样  在类名后面加一个“<T>”  就行了
public class LoopListTest<T> extends ArrayList<Object>

回复 使用道具 举报
樊占江 发表于 2012-8-7 22:30
问题我找出来了
在文件的开头添加一个泛型的支持  就是这样  在类名后面加一个“”  就行了
public class  ...

恩 对啊,你定义一个泛型类  就在类上声明就可以了   其实这道题没必要继承List    在类的内部定义一个list 会好些。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马