Java 如何计算内部类创建的对象数
我有一个活动,其中有一个名为AsyncTask的类。在AsyncTask类中,我想将计数器声明为静态变量,但我不能,因为AsyncTask类被假定为mainActivity的内部类 有没有办法在AsycTask“内部类”中创建一个静态变量,以计算示例中为AsyncTask创建的对象数 代码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
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