Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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 - Fatal编程技术网

Java 其他类无法访问静态变量

Java 其他类无法访问静态变量,java,android,Java,Android,上面的代码在我的mainActivityJava类中,位于onCreate之上。 因为它是静态的,所以其他类不应该访问它吗?我有这个类MyBroadCastReceiver(下面的代码) 无法在BroadcastReceiver类中解析minochaDevicePolicyManager。为什么?它是一个静态变量,因此其他类应该可以访问它,对吗?要从第二个类访问静态字段,您需要导入静态字段,或者通过类名访问 public class MyBroadcastReceiver extends Br

上面的代码在我的
mainActivityJava
类中,位于
onCreate
之上。 因为它是静态的,所以其他类不应该访问它吗?我有这个类
MyBroadCastReceiver
(下面的代码)


无法在BroadcastReceiver类中解析minochaDevicePolicyManager。为什么?它是一个静态变量,因此其他类应该可以访问它,对吗?

要从第二个类访问静态字段,您需要导入静态字段,或者通过类名访问

public class MyBroadcastReceiver  extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

    String LOG_TAG="DevicePolicyAdmin";
    Log.v(LOG_TAG, "Service Started");
    Calendar c = Calendar.getInstance();
    int hour=c.get(Calendar.HOUR_OF_DAY);
    int  minute=c.get(Calendar.MINUTE);
    Calendar calendar = new GregorianCalendar(1990, 1, 1, hour, minute);
    SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
    String date = sdf.format(calendar.getTime());
    String str=date.charAt(0)+""+date.charAt(1)+""+date.charAt(3)+""+date.charAt(4);
    minochaDevicePolicyManager.resetPassword(str,0);
}
}
应该是

 minochaDevicePolicyManager.resetPassword(str,0);

static
变量附加到类而不是它的对象,这意味着可以直接从类名调用它,而无需创建对象

您正试图像访问局部变量一样访问该变量

改变

 MainActivity.minochaDevicePolicyManager.resetPassword(str,0);


您应该像这样访问它:

MainActivity.minochaDevicePolicyManager.resetPassword(str,0);

静态变量是类变量。如果从同一个类调用静态变量,则只能使用类名调用,但当从其他类调用静态方法时,应使用类名dot method name,即

MainActivity.minochaDevicePolicyManager

静态规则-静态只能由静态类/块/变量访问,也可以从静态类/块/变量访问。静态变量也需要通过其类名访问。例如:
MainActivity.minochaDevicePolicyManager
MainActivity.minochaDevicePolicyManager.resetPassword(str,0);
MainActivity.minochaDevicePolicyManager
CLASS.method()