Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用for循环创建多个对象_Java_Android - Fatal编程技术网

Java 使用for循环创建多个对象

Java 使用for循环创建多个对象,java,android,Java,Android,我想要的是在for循环中创建多个视图 范例 对于(int i=1;i使用列表 List<GridView> views = new ArrayList<GridView>(); for(int i = 1; i < 5; i++) { views.add(new GridView(this)); } 使用网格视图的列表 List<GridView> grids = new ArrayList<GridView>(); for(int

我想要的是在for循环中创建多个视图 范例

对于(int i=1;i使用列表

List<GridView> views = new ArrayList<GridView>();
for(int i = 1; i < 5; i++) {
    views.add(new GridView(this));
}

使用
网格视图的
列表

List<GridView> grids = new ArrayList<GridView>();
for(int i =1; i<5; i++){
    grids.add(new Gridview(this));
}
List grids=new ArrayList();

对于(int i=1;i我想你可以这样做:

for(int i =1; i<5; i++){
GridView view = new Gridview(this);
view.setId(i);
}

for(inti=1;i我认为这段代码将创建5个GridView,其中4个将立即用于垃圾收集,因为您的代码不再引用它们

如果你在一个循环中创建它们,那么我想我会把它们存储在一个数据结构中,比如列表或地图,然后通过索引或键访问它们;
GridView[] view=new GridView[5];
for(int i=1;i<5;i++){
view[i]=new GridView(this);}

对于(int i=1;i同样,在您的示例中,当
for
循环的一个步骤结束时,对该对象的引用将丢失,因为它们创建的范围已被保留。没有对对象的引用,垃圾收集器将进入并释放内存,删除对象

因此,您甚至无法访问创建的最后一个对象。如果您像这样修改代码,在代码末尾,您将只实例化最后一个对象:

GridView view;
for(int i =1; i<5; i++){
    view = new Gridview(this);
}
GridView视图;
对于(inti=1;ihello();
$view4->hello();

下面是可运行的代码:

你想要实现什么?你确定不能使用适配器吗?或者膨胀一些布局吗?我认为这不会编译。
GridView[] view=new GridView[5];
for(int i=1;i<5;i++){
view[i]=new GridView(this);}
GridView view;
for(int i =1; i<5; i++){
    view = new Gridview(this);
}
class Object {
    function hello(){
        echo "Hello \n";
    }
}

for($i =1; $i<5; $i++){
    $name = "view".$i;
    $$name = new Object();
}

$view1->hello();
$view2->hello();
$view4->hello();