public static DevicePolicyManager minochaDevicePolicyManager;
public static ComponentName minochaDevicePolicyAdmin;
以上代码位于MainActivity java
上方的onCreate
课程中。
由于它是静态的,不应该被其他类访问吗?我有这个课程MyBroadCastReceiver
(下面的代码)
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);
}
}
无法在BroadcastReceiver类中解析minochaDevicePolicyManager
。为什么?它是一个静态变量,所以它应该可以被其他类访问吗?
答案 0 :(得分:5)
要从第二个类访问静态字段,您需要import static
字段,或按类名访问。
minochaDevicePolicyManager.resetPassword(str,0);
应该是
MainActivity.minochaDevicePolicyManager.resetPassword(str,0);
答案 1 :(得分:4)
static
变量附加到类而不是它的对象,这意味着它可以直接从类名调用而不创建对象。
您正尝试像局部变量一样访问变量。
更改
minochaDevicePolicyManager.resetPassword(str,0);
到
MainActivity.minochaDevicePolicyManager.resetPassword(str,0);
答案 2 :(得分:3)
您应该像这样访问它:
MainActivity.minochaDevicePolicyManager
答案 3 :(得分:0)
静态变量是类变量。如果您从同一个类调用静态变量,那么您只能使用类名调用,但是当您从其他类调用静态方法时,您应该使用类名称点方法名称,即< / p>
CLASS.method()