1

在 java 中的以下代码中:

Notification noti = nBuilder.build();
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
noti.flags |= Notification.FLAG_AUTO_CANCEL;

this 运算符 ( |=) 有什么用?

4

4 回答 4

7
noti.flags |= Notification.FLAG_AUTO_CANCEL;

方法

noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL;

在哪里 | 是个Bit wise OR operator

于 2013-07-30T10:07:02.043 回答
3
  • | 是位还是运算符
  • |= 是 noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL;

    noti.flags |= Notification.FLAG_AUTO_CANCEL;

    计算 noti.flags 和 Notification.FLAG_AUTO_CANCEL 的按位或,并将结果分配给 noti.flagsd。

于 2013-07-30T10:06:51.833 回答
1

按位或,等同于:

noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL;

它使用操作数的位执行“或”运算。说你有

// noti.flags =                      0001011    (11 decimal)
// Notification.FLAG_AUTO_CANCEL =   1000001    (65 decimal)

// The result would be:              1001011    (75 decimal)
于 2013-07-30T10:07:07.747 回答
1

这是包含赋值运算符的按位或。扩展它将是noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL; 类似地,您有 &= 用于按位与,^= 用于按位异或,~= 用于按位非。

于 2013-07-30T10:07:10.673 回答