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()