Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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 如何计算内部类创建的对象数_Java_Android_Android Asynctask_Static_Inner Classes - Fatal编程技术网

Java 如何计算内部类创建的对象数

Java 如何计算内部类创建的对象数,java,android,android-asynctask,static,inner-classes,Java,Android,Android Asynctask,Static,Inner Classes,我有一个活动,其中有一个名为AsyncTask的类。在AsyncTask类中,我想将计数器声明为静态变量,但我不能,因为AsyncTask类被假定为mainActivity的内部类 有没有办法在AsycTask“内部类”中创建一个静态变量,以计算示例中为AsyncTask创建的对象数 代码 class MainActivity extends Activity { .... .... .... .... class MyAsync extends Asy

我有一个活动,其中有一个名为AsyncTask的类。在AsyncTask类中,我想将计数器声明为静态变量,但我不能,因为AsyncTask类被假定为mainActivity的内部类

有没有办法在AsycTask“内部类”中创建一个静态变量,以计算示例中为AsyncTask创建的对象数

代码

class MainActivity extends Activity {
    ....
    ....
    ....
    ....

    class MyAsync extends AsyncTask <void, Void, Void> {

        private static int counter = 0; // is not possible here
    }

}
class MainActivity extends Activity {
    ....
    ....
    ....
    ....

    static class MyAsync extends AsyncTask <void, Void, Void> {

        private static int counter = 0; // is not possible here
    }

}
class MainActivity扩展了活动{
....
....
....
....
类MyAsync扩展了AsyncTask{
私有静态int计数器=0;//此处不可能
}
}

您可以这样做:

class MainActivity extends Activity {
    private static int counter = 0;

    // ...

    static class MyAsync extends AsyncTask <Void, Void, Void> {

        private MyAsync() {
            counter++;
        }

        // ...
    }
}
class MainActivity扩展了活动{
专用静态整数计数器=0;
// ...
静态类MyAsync扩展了AsyncTask{
私有MyAsync(){
计数器++;
}
// ...
}
}

这样,每次创建
MyAsync

的新实例时,
计数器将递增。您可以创建一个构造函数来递增
异步任务中的
计数器

这样做:

class MainActivity extends Activity {
....
....
....
....
    int counter = 0; 
    class MyAsync extends AsyncTask <void, Void, Void> {

       MyAsync()
       {
           counter++;
       }
    }

}
class MainActivity扩展了活动{
....
....
....
....
int计数器=0;
类MyAsync扩展了AsyncTask{
MyAsync()
{
计数器++;
}
}
}
其背后的逻辑是:将调用任何类的构造函数 每次创建新对象时。内部构造函数 我们有
计数器+++
,因此每次创建新对象时 计数器递增,您将拥有 创建的对象


还可以使用静态内部类

代码

class MainActivity extends Activity {
    ....
    ....
    ....
    ....

    class MyAsync extends AsyncTask <void, Void, Void> {

        private static int counter = 0; // is not possible here
    }

}
class MainActivity extends Activity {
    ....
    ....
    ....
    ....

    static class MyAsync extends AsyncTask <void, Void, Void> {

        private static int counter = 0; // is not possible here
    }

}
class MainActivity扩展了活动{
....
....
....
....
静态类MyAsync扩展了AsyncTask{
私有静态int计数器=0;//此处不可能
}
}

ok,但在这种情况下,计数器变量不应声明为静态,也可能是非静态的,不是吗?@jankigadhiya:你是gujrati吗o