为什么不能这样用?
public class test {
public test() {
}
public static void main(String[] args) {
ArrayList thearratlist = new ArrayList();
for (int i=0;i<5;i++){
ArrayList arratlist = new ArrayList();
arratlist.add(Integer.toString(i));
}
thearratlist.add(arratlist);
}
}
问题点数:0、回复次数:5Top
1 楼chufd()回复于 2004-12-03 11:58:51 得分 0
public class test {
public test() {
}
public static void main(String[] args) {
ArrayList arratlist = new ArrayList();
ArrayList thearratlist = new ArrayList();
for (int i=0;i<5;i++){
arratlist.add(Integer.toString(i));
}
thearratlist.add(arratlist);
}
}Top
2 楼catblue(佛家说:一粒沙中看世界。)回复于 2004-12-03 12:06:11 得分 0
外面的变量看不到里面的变量
你在第一个程序中arratlist是一个局部变量,对于thearratlist 是不可见的Top
3 楼zh_baiyu(SkyBay)回复于 2004-12-03 12:06:30 得分 0
呵呵。首先类定义要用大写开头。。。
不过这里不是这个问题。
在这里,是变量的作用域的问题。
public class test {
public test() {
}
public static void main(String[] args) {
ArrayList thearratlist = new ArrayList();
for (int i=0;i<5;i++){
ArrayList arratlist = new ArrayList();
arratlist.add(Integer.toString(i));
}
thearratlist.add(arratlist);
}
}
这里arratlist只在循环内有效。
可以这样写
public class test {
public test() {
}
public static void main(String[] args) {
ArrayList thearratlist = new ArrayList();
ArrayList arratlist = null;
for (int i=0;i<5;i++){
arratlist = new ArrayList();
arratlist.add(Integer.toString(i));
}
thearratlist.add(arratlist);
}
}
这样就没有问题了。
Top
4 楼zh_baiyu(SkyBay)回复于 2004-12-03 12:07:37 得分 0
哦。。不对,我刚才写的还有一个问题。。。:)
每次变成新定义一个了arraylist了。。。呵呵。不好意思。写错了。
Top
5 楼survivor_pan(游客)回复于 2004-12-03 12:20:20 得分 0
楼主不是自己已经解决了吗?
Top




